Parenthèses de regroupement dans les regex PHP

Dans les exemples précédents, les opérateurs de répétition n'agissaient que sur un seul caractère qui les précédait. Que faire si nous voulons les faire agir sur plusieurs caractères ?

Pour cela, il existe les parenthèses de regroupement '(' et ')'. Elles fonctionnent ainsi : si quelque chose se trouve entre des parenthèses de regroupement et qu'un opérateur de répétition se trouve immédiatement après ')' - il agira sur tout ce qui se trouve à l'intérieur des parenthèses.

Dans l'exemple suivant, le modèle de recherche est le suivant : la lettre 'x', suivie de la chaîne 'ab' une ou plusieurs fois, puis la lettre 'x' :

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

En conséquence, la variable contiendra ce qui suit :

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

Soit une chaîne :

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

Écrivez une expression régulière qui trouvera les chaînes correspondant au modèle : la chaîne 'ab' répétée 1 fois ou plus.