Genoemde groepen binnen een PHP regex

Laten we ons herinneren hoe we groepen gebruikten in de reguliere expressie zelf:

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

Soms zijn er situaties waarin het handiger is om naar een groep te verwijzen niet op zijn nummer, maar op naam. Om dit te doen moeten we de groep een naam geven:

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

Nu kunnen we naar deze groep verwijzen via de syntaxis \k<name>, zoals dit:

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

De beschreven genoemde groepen hebben nog een paar alternatieve syntaxen: (?P=name), \k'name', \k{name}.

Задание 1

Gegeven een string:

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

Vind alle substrings met tijd, waarin het uur overeenkomt met de seconden.