Eu tenho medo que a lista de classes de caracteres esteja codificada na biblioteca C (por exemplo, no GNU libc, na função build_charclass
em posix/regcomp.c
). A única maneira de estendê-lo seria recompilar a biblioteca C.
Você pode personalizar o conteúdo de cada classe existente em uma definição de localidade.
Na maioria dos casos, deve ser bom o suficiente para construir seu regexp como uma string:
myclass='a*[:alnum:][:space:]'
regexp="[$myclass]"
Você não pode subtrair caracteres de uma categoria dessa maneira. E tenha cuidado ao adicionar ]
ou -
ou \
para respeitar a sintaxe das classes de caracteres nas expressões regulares do seu idioma.