El problema de la barra invertida en PHP

La barra invertida es un carácter especial en PHP. Esto significa que en una cadena, si queremos que la barra invertida se represente a sí misma, debemos duplicarla:

php<?php
  $str = '\\ \\\\ \\\\\\'; // en realidad la cadena es '\ \\ \\\'
?>

La barra invertida también es un carácter especial en las expresiones regulares. Esto significa que dentro de una expresión regular, para que la barra invertida se represente a sí misma, necesita escribirse hasta cuatro veces:

php<?php
  echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // mostrará '! ! !!'
?>

Ahora escribamos una expresión regular en la que el patrón de búsqueda sea: barra invertida una o más veces. En este caso, escribiremos el operador + para 4 caracteres antes que él sin agrupación:

php<?php
  echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // mostrará '! ! !'
?>
Задание 1

Se da la cadena:

php<?php
  $str = 'a\\b c\\d e\\f';
?>

Encuentre en esta cadena todas las subcadenas según el patrón letra, barra invertida, letra.

Задание 2

Se da la cadena:

php<?php
  $str = 'a\\b c\\\\d e\\\\\\f';
?>

Encuentre en esta cadena todas las subcadenas según el patrón letra, barra invertida cualquier cantidad de veces, letra.