PHP ичида номланган карманлар

Биз регуляр ифоданинг ўзида карманлардан қандай фойдаланганимизни эслаймиз:

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

Баъзан вазиятлар бўладики, карманганга унинг рақами орқали эмас, балки номи орқали мурожаат қилиш қулайрок бўлади. Бунинг учун биз карманганга ном беришимиз керак:

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

Энди биз бу карманганга \k<name> синтаксиси орқали мурожаат қилишимиз мумкин, мана бу йўл билан:

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

Тавсифланган номланган карманларда яна бир нечта алтернатив синтаксислар мавжуд: (?P=name), \k'name', \k{name}.

Задание 1

Берилган сатр:

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

Соат секундлар билан мос келадиган барча вақт остоналарини топинг.