El poder de las expresiones regulares viene dado por la capacidad de incluir alternativas y repeticiones en el patrón. Éstos están codificadoes en el patrón por el uso de metacaracteres, los cuales no se representan a sí mismos, sino que son interpretados de una forma especial.
Hay dos conjuntos diferentes de metacaracteres: aquéllos que son reconocidos en cualquier lugar de un patrón excepto dentro de los corchetes, y aquéllos que son reconocidos dentro de los corchetes. Fuera de los corchetes, los metacaracteres son los siguientes:
| Metacarácter | Descripción | 
|---|---|
| \ | carácter de escape general con varios usos | 
| ^ | declaración de inicio de sujeto (o línea, en modo multilínea) | 
| $ | declaración de fin de sujeto o antes de la terminación de nueva línea (o fin línea, en modo multilínea) | 
| . | coincide con cualquier carácter excepto con el de nueva línea (por defecto) | 
| [ | inicio de la definición de la clase carácter | 
| ] | fin de la definición de la clase carácter | 
| | | inicio de rama alternativa | 
| ( | inicio de sub-patrón | 
| ) | fin de sub-patrón | 
| ? | amplia el significado de (, también cuantificador 0 o 1, también hace perezosos a los cuantificadores codiciosos (véase repetición) | 
| * | cuantificador 0 o más | 
| + | cuantificador 1 o más | 
| { | inicio de cuantificador mín/máx | 
| } | fin de cuantificador mín/máx | 
| Metacarácter | Descripción | 
|---|---|
| \ | carácter de escape general | 
| ^ | niega la clase, pero sólo si se trata del primer carácter | 
| - | indica el rango de caracteres |