É um bug. Qualquer nome de classe com 5 caracteres (ou seja, todos eles, exceto xdigit
) é interpretado como alnum
, tudo pela falta de um caractere pequeno. O patch é simples:
--- regex/regcomp.c~
+++ regex/regcomp.c
@@ -819,7 +819,7 @@
NEXT();
len = p->next - sp;
for (cp = cclasses; cp->name != NULL; cp++)
- if (STRLEN(cp->name) == len && MEMCMP(cp->name, sp, len))
+ if (STRLEN(cp->name) == len && !MEMCMP(cp->name, sp, len))
break;
if (cp->name == NULL) {
/* oops, didn't find it */
Eu não relatei o bug nem o informei em lugar algum. Por favor, faça isso e siga de volta aqui.