Paranteze de grupare în expresiile regulate PHP

În exemplele precedente, operatorii de repetare acționau doar asupra unui singur caracter care se afla înaintea lor. Ce facem dacă vrem să-i facem să acționeze asupra mai multor caractere?

Pentru asta există parantezele de grupare '(' și ')'. Ele funcționează astfel: dacă ceva se află între parantezele de grupare și imediat după ')' se află un operator de repetare - acesta va acționa asupra a tot ce se află în interiorul parantezelor.

În următorul exemplu, șablonul de căutare arată așa: litera 'x', apoi șirul 'ab' de unul sau mai multe ori, apoi litera 'x':

php<?php
  $str = 'xabx xababx xaabbx';
  $res = preg_replace('#x(ab)+x#', '!', $str);
?>

Ca rezultat, în variabilă se va scrie următoarele:

php'! ! xaabbx'
Задание 1

Este dat șirul:

php<?php
  $str = 'ab abab abab abababab abea';
?>

Scrieți o expresie regulată care va găsi șirurile după șablonul: șirul 'ab' se repetă de 1 sau de mai multe ori.