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

時間(時)と秒が一致する全ての時刻部分文字列を見つけてください。