Benannte Gruppen in regulären Ausdrücken von PHP

Erinnern wir uns daran, wie wir Gruppen in dem regulären Ausdruck selbst verwendet haben:

php<?php
  $res = preg_replace('#([a-z])\1#', '!', $str);
?>

Manchmal gibt es Situationen, in denen es bequemer ist, nicht über die Nummer, sondern über den Namen auf eine Gruppe zuzugreifen. Dafür müssen wir der Gruppe einen Namen geben:

php<?php
  $res = preg_replace('#(?<letter>[a-z])#', '!', $str);
?>

Jetzt können wir auf diese Gruppe über die Syntax \k<name> zugreifen, so:

php<?php
  $res = preg_replace('#(?<letter>[a-z])\k<letter>#', '!', $str);
?>

Die beschriebenen benannten Gruppen haben noch einige alternative Syntaxen: (?P=name), \k'name', \k{name}.

Задание 1

Gegeben sei der String:

php<?php
  $str = '12:59:59 12:59:12 09:45:09';
?>

Finden Sie alle Teilstrings mit Zeit, in denen die Stunde mit den Sekunden übereinstimmt.