Escapando delimitadores em PHP
Se um caractere não for especial, então, quando você o usa como delimitador, será necessário escapá-lo dentro da própria expressão regular. Vamos ver um exemplo.
Suponha que usemos cerquilhas (sustenhos) como delimitadores, e dentro da expressão regular estamos procurando pelo caractere "e" comercial (ampersand). Como o "e" comercial não é um caractere especial, não precisamos escapá-lo:
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // retornará '!'
?>
Suponha agora que os delimitadores sejam "e" comerciais e dentro da expressão regular também precisamos de um "e" comercial. Nesse caso, o "e" comercial interno precisa ser escapado, caso contrário, causará um erro no PHP:
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // retornará '!'
?>
Corrija o erro cometido no seguinte código:
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>