Se necesita una barra invertida adicional en el patrón de expresión regular de PHP

Al probar una respuesta parala pregunta de otro usuario Encontré algo que no entiendo. El problema era reemplazar todos los literales.\t \n \r Caracteres de una cadena con un solo espacio.

Ahora, el primer patrón que probé fue:

/(?:\\[trn])+/

que sorprendentemente no funcionó. Probé el mismo patrón en Perl y funcionó bien. Después de algunas pruebas y errores, encontré que PHP quiere 3 o 4 barras diagonales inversas para que ese patrón coincida, como en:

/(?:\\\\[trn])+/

o

/(?:\\\[trn])+/

estos patrones - para mi sorpresa - ambos funcionan. ¿Por qué son necesarias estas barras invertidas adicionales?

Respuestas a la pregunta(4)

Su respuesta a la pregunta