O problema da barra invertida em PHP

A barra invertida é um caractere especial no PHP. Isso significa que, em uma string, se quisermos que a barra invertida represente a si mesma, devemos dobrá-la:

php<?php
  $str = '\\ \\\\ \\\\\\'; // na verdade a string é '\ \\ \\\'
?>

A barra invertida também é um caractere especial em expressões regulares. Isso significa que, dentro da regex, para que a barra invertida represente a si mesma, ela precisa ser escrita incríveis quatro vezes:

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

Vamos agora escrever uma expressão regular onde o padrão de busca seja: barra invertida uma ou mais vezes. Neste caso, escreveremos o operador + para incríveis 4 caracteres antes dele sem agrupamento:

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

Dada a string:

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

Encontre nesta string todas as substrings pelo padrão letra, barra invertida, letra.

Задание 2

Dada a string:

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

Encontre nesta string todas as substrings pelo padrão letra, barra invertida qualquer quantidade de vezes, letra.