Presque tous les métacaractères (y compris le point . , le + , * et ? quantificateurs, l'ancre de fin de chaîne $ , etc.) n'ont pas de signification particulière dans les classes de caractères, à quelques exceptions près :
- crochet fermant
], pour des raisons évidentes - caret
^, qui est utilisé pour nier la classe de caractères (par exemple :[^ab]correspond à n'importe quel caractère saufaetb). - trait d'union
-, qui est utilisé pour désigner une plage (par exemple :[0-9]correspond à n'importe quel chiffre)
Cependant, ceux-ci peuvent toujours être ajoutés sans s'échapper s'ils sont placés à des endroits stratégiques au sein de la classe de personnage :
- la parenthèse fermante peut être placée juste après la parenthèse ouvrante, par exemple :
[]a]correspond à]oua. - le caret peut être placé n'importe où sauf après la parenthèse ouvrante, par exemple :
[a^]correspond à^oua - le trait d'union peut être placé juste après la parenthèse ouvrante ou avant la parenthèse fermante, par exemple :
[-a]et[a-]les deux correspondent àaet-.
Plus d'informations peuvent être trouvées dans la page de manuel sur POSIX regex
(merci Tomalak Geret'kal !)