Ομαδοποιητικές παρενθέσεις στις κανονικές εκφράσεις της PHP

Στα προηγούμενα παραδείγματα, οι τελεστές επανάληψης δρούσαν μόνο σε έναν χαρακτήρα, ο οποίος βρισκόταν μπροστά τους. Τι πρέπει να κάνουμε, αν θέλουμε να δράσουν σε πολλούς χαρακτήρες;

Για αυτό υπάρχουν οι ομαδοποιητικές παρενθέσεις '(' και ')'. Λειτουργούν ως εξής: αν κάτι βρίσκεται μέσα σε ομαδοποιητικές παρενθέσεις και αμέσως μετά την ')' υπάρχει τελεστής επανάληψης - θα δράσει σε ό,τι βρίσκεται μέσα στις παρενθέσεις.

Στο επόμενο παράδειγμα, το μοτίβο αναζήτησης φαίνεται έτσι: γράμμα 'x', στη συνέχεια η συμβολοσειρά 'ab' μία ή περισσότερες φορές, μετά γράμμα 'x':

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

Ως αποτέλεσμα, στη μεταβλητή θα καταγραφεί το εξής:

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

Δίνεται συμβολοσειρά:

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

Γράψτε μια κανονική έκφραση, που θα βρει συμβολοσειρές σύμφωνα με το μοτίβο: η συμβολοσειρά 'ab' επαναλαμβάνεται 1 ή περισσότερες φορές.