Nazwane kieszenie wewnątrz wyrażenia regularnego PHP

Przypomnijmy, jak używaliśmy kieszeni w samym wyrażeniu regularnym:

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

Czasami zdarzają się sytuacje, gdy wygodniej jest odwoływać się do kieszeni nie po jej numerze, ale po nazwie. Aby to zrobić, musimy nadać kieszeni nazwę:

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

Teraz możemy odwołać się do tej kieszeni poprzez składnię \k<name>, o tak:

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

Opisane nazwane kieszenie mają jeszcze kilka alternatywnych składni: (?P=name), \k'name', \k{name}.

Задание 1

Dany jest ciąg:

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

Znajdź wszystkie podciągi z czasem, w których godzina pokrywa się z sekundami.