El poder de las expresiones regulares proviene de la capacidad de incluir alternativas y repeticiones en el patrón. Estas se codifican en el patrón mediante el uso de metacaracteres, que no se representan a sí mismos, sino que se interpretan de alguna manera especial.
Hay dos conjuntos diferentes de metacaracteres: aquellos que se reconocen en cualquier parte del patrón excepto dentro de corchetes, y aquellos que se reconocen dentro de corchetes. Fuera de corchetes, los metacaracteres son los siguientes:
| Metacaracter | Descripción | 
|---|---|
| \ | carácter de escape general con varios usos | 
| ^ | asegurar el inicio del sujeto (o línea, en modo multiline) | 
| $ | asegurar el final del sujeto o antes de un salto de línea de terminación (o final de línea, en modo multiline) | 
| . | coincidir con cualquier carácter excepto salto de línea (por defecto) | 
| [ | inicio de definición de clase de caracteres | 
| ] | fin de definición de clase de caracteres | 
| | | inicio de rama alternativa | 
| ( | inicio de subpatrón | 
| ) | fin de subpatrón | 
| ? | extiende el significado de (, también 0 o 1 cuantificador, también hace que los cuantificadores codiciosos sean perezosos (ver repetición) | 
| * | cuantificador 0 o más | 
| + | cuantificador 1 o más | 
| { | inicio de cuantificador min/max | 
| } | fin de cuantificador min/max | 
| Metacaracter | Descripción | 
|---|---|
| \ | carácter de escape general | 
| ^ | niega la clase, pero solo si es el primer carácter | 
| - | indica rango de caracteres | 
