Está interesante, a ver si me puedo explicar:
Código regexp:
Ver original( delimitador de expresión
\x{20ac} secuencia de escape hexadecimal
([\d\w\/\pL]+) captura uno o mas de: números, letras, barras y caracteres en latín
| separador lógico OR
# carácter literal "gato"
([\d\w\/\pL]+) otra captura de uno o mas de: números, letras, barras y caracteres en latín
) delimitador de expresión
u modificador de expresión: no está documentado bajo PHP/PCRE
A lo que me viene una pregunta, ¿de dónde tomaste la expresión?
RegExp es un sub-lenguaje, no siempre funciona la misma expresión bajo todos los lenguajes donde se embebe, porque de hecho el modificar "u" minúscula de verdad no está documentado bajo la implementación PCRE de PHP.
Ejecutando el código parece estar todo bien:
https://ignite.io/code/513b71a2ec221eb935000002
Por su propia naturaleza RegExp debe ser estudiado de manera independiente, te sugiero buscar referencias de cómo entender y escribir expresiones regulares, el manual de PHP tiene una muy buena aquí:
http://www.php.net/manual/es/referen...ern.syntax.php