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';
?>

Сағат секундтармен сәйкес келетін уақыт барлық ішкі жолдарын табыңыз.