Delimitadores
  
   Ao usar as funções PCRE, é necessário que a expressão esteja entre
   delimitadores. Um delimitador pode ser qualquer caractere
   não alfanumérico que não seja uma barra invertida e que não corresponda a um espaço em branco.
   Espaços em branco antes de um delimitador válido são silenciosamente ignorados.
  
  
   Delimitadores comumente usados são barras (/), cerquilhas
   (#) e til (~). Os exemplos
   a seguir são padrões com delimitadores válidos.
   
  
  
   Também é possível usar delimitadores
   no estilo parênteses, onde os delimitadores inicial e final são
   os caracteres de abertura e fechamento, respectivamente. (),
   {}, [] e <>
   são todos pares válidos de delimitadores nesse estilo.
   
   Delimitadores no estilo parênteses não precisam ser escapados quando são usados como
   metacaracteres dentro da expressão, mas como acontece com outros delimitadores, eles precisam
   ser escapados quando são usados como caracteres literais.
  
  
   Se o delimitador precisa ser correspondido dentro da expressão, ele precisa ser
   escapado usando uma barra invertida. Se o delimitador aparece com muita frequência dentro da
   expressão, é uma boa ideia escolher um delimitador diferente para melhorar
   a legibilidade.
   
   A função 
preg_quote() pode ser usada para escapar uma string
   a ser injetada em uma expressão e seu segundo parâmetro opcional pode ser usado
   para especificar o delimitador a ser escapado.
  
  
   Pode-se adicionar modificadores
   de expressão após o delimitador final. Este é um exemplo
   de correspondência insensível a maiúsculas/minúsculas usando o modificador "i":
   
  
      
 
    
  
  Pedro Gimeno ¶10 years ago
  
Note that bracket style opening and closing delimiters aren't a 100% problem-free solution, as they need to be escaped when they aren't in matching pairs within the expression. That mismatch can happen when they appear inside character classes [...], as most meta-characters lose their special meaning. Consider these examples:
<?php
  preg_match('{[{]}', ''); preg_match('{[}]}', ''); preg_match('{[}{]}', ''); ?>
Escaping them solves it:
<?php
  preg_match('{[\{]}', ''); preg_match('{[}]}', ''); preg_match('{[\}\{]}', ''); ?>
   
  
    
  
  Munin ¶10 years ago
  
preg_match('{[}]}', ''); // Warning: preg_match(): Unknown modifier ']'
preg_match('{[\}]}', ''); // OK
   
  
    
  
  Revo ¶6 years ago
  
Note that angle brackets `<>` shouldn't be used as delimiters whenever you will have to invoke advanced clusters like atomic groups or lookbehinds because their including angle bracket doesn't come in pair and escaping doesn't help either.