Delimitadores

Cuando se usan funciones PCRE, se requiere que el patrón esté encerrado entre delimitadores. Un delimitador puede ser cualquier carácter no alfanumérico, que no sea una barra invertida, y que no sea un espacio en blanco.

Los delimitadores que se usan a menudo son barras oblícuas (/), signos de número (#) y virgulillas (~). Los siguientes ejemplos son todos patrones delimitados válidos.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

También es posible utilizar los delimitadores estilo corchete, donde los corchetes de apertura y cierre son los delimitadores inicial y final, respectivamente. (), {}, [] y <> son todos pares de delimitadores válidos.

(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
Los delimitadores de estilo de corchete no necesitan escaparse cuando se usan como meta caracteres dentro del patrón, pero al igual que con otros delimitadores, deben ser escapados cuando se utilizan como caracteres literales.

Si el delimitador necesita ser comparado dentro del patrón se debe escapar usando una barra invertida. Si el delimitador aparece a menudo dentro del patrón, es una buena idea escoger otro delimitador para aumentar la legibilidad.

/http:\/\//
#http://#
La función preg_quote() se puede usar para escapar una cadena para inyectarla dentro de un patrón y su segundo parámetro opcional de puede usar parar especificar el delimitador a escapar.

Puede añadir modificadores de patrón después del delimitador final. El siguiente es un ejemplo de comparación insensible a mayúsculas-minúsculas:

#[a-z]#i