Проблемът с обратната наклонена черта в PHP

Обратната наклонена черта е специален символ в PHP. Това означава, че в низ, ако искаме наклонената черта да означава сама себе си, трябва да я удвоим:

php<?php
  $str = '\\ \\\\ \\\\\\'; // всъщност низът е '\ \\ \\\'
?>

Обратната наклонена черта е и специален символ в регулярните изрази. Това означава, че в регулярен израз, за да означава наклонената черта сама себе си, трябва да бъде написана цели четири пъти:

php<?php
  echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // ще изведе '! ! !!'
?>

Нека сега напишем регулярен израз, в който шаблонът за търсене е: обратна наклонена черта един или повече пъти. В този случай ние пишем оператора + за 4 символа преди него без групиране:

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

Даден е низ:

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

Намерете в този низ всички поднизове по шаблон буква, обратна наклонена черта, буква.

Задание 2

Даден е низ:

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

Намерете в този низ всички поднизове по шаблон буква, обратна наклонена черта произволен брой пъти, буква.