Delimitadores
Al usar las funciones PCRE, es obligatorio que el patrón esté encerrado
por delimitadores. Un delimitador puede ser cualquier carácter no alfanumérico,
no barra invertida, no espacio en blanco, de un solo byte.
Los espacios en blanco iniciales antes de un delimitador válido se ignoran silenciosamente.
Nota:
Los caracteres multibyte (como los caracteres codificados en UTF-8, por ejemplo §)
no pueden ser utilizados como delimitadores. PHP lee exactamente un byte como delimitador;
utilizar un carácter multibyte provocaría que los bytes restantes fueran
interpretados erróneamente como modificadores de patrón desconocidos.
Los delimitadores comúnmente utilizados son las barras inclinadas hacia adelante (/), signos de número
(#) y tildes (~). Los siguientes son ejemplos de patrones delimitados válidos.
También es posible usar
delimitadores de estilo de corchetes donde los corchetes de apertura y cierre son el delimitador de inicio y fin, respectivamente. (),
{}, [] y <>
son todos pares de delimitadores de estilo de corchetes válidos.
Los delimitadores de estilo de corchetes no necesitan ser escapados cuando se usan como metacaracteres dentro del patrón, pero como con otros delimitadores deben ser escapados cuando se usan como caracteres literales.
Si el delimitador necesita coincidir dentro del patrón debe ser
escapado usando una barra invertida. Si el delimitador aparece con frecuencia dentro del
patrón, es una buena idea elegir otro delimitador para aumentar
la legibilidad.
La función
preg_quote() puede ser utilizada para escapar una cadena
para inyectarla en un patrón y su segundo parámetro opcional puede ser utilizado
para especificar el delimitador a escapar.
Puede agregar modificadores de patrón después del delimitador final. El siguiente es un ejemplo
de coincidencia sin distinción de mayúsculas y minúsculas: