Casi todos los metacaracteres (incluido el punto .
, el +
, *
y ?
cuantificadores, el ancla de fin de cadena $
, etc.) no tienen un significado especial en las clases de caracteres, con algunas excepciones notables:
- corchete de cierre
]
, por razones obvias - intercalación
^
, que se utiliza para negar la clase de carácter (p. ej.:[^ab]
coincide con cualquier carácter peroa
yb
). - guion
-
, que se usa para indicar un rango (por ejemplo:[0-9]
coincide con cualquier dígito)
Sin embargo, aún se pueden agregar sin escapar si se colocan en ubicaciones estratégicas dentro de la clase de personaje:
- el corchete de cierre se puede colocar justo después del corchete de apertura, por ejemplo:
[]a]
coincide con]
oa
. - el signo de intercalación se puede colocar en cualquier lugar menos después del paréntesis de apertura, por ejemplo:
[a^]
coincide con^
oa
- el guión se puede colocar justo después del paréntesis de apertura o antes del paréntesis de cierre, por ejemplo:
[-a]
y[a-]
ambos coinciden cona
y-
.
Se puede encontrar más información en la página man en POSIX regex
(¡gracias Tomalak Geret'kal!)