Bolsillos con nombre dentro de la expresión regular de PHP

Recordemos cómo usábamos los bolsillos en la propia expresión regular:

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

A veces hay situaciones en las que es más conveniente acceder a un bolsillo no por su número, sino por su nombre. Para esto necesitamos darle un nombre al bolsillo:

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

Ahora podemos acceder a este bolsillo a través de la sintaxis \k<nombre>, así:

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

Los bolsillos con nombre descritos tienen además varias sintaxis alternativas: (?P=nombre), \k'nombre', \k{nombre}.

Задание 1

Se da una cadena:

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

Encuentra todas las subcadenas con la hora, en las que la hora coincide con los segundos.