Izuzetci unutar skupova u regularnim izrazima PHP

Već znate da posebni karakteri unutar [] postaju obični karakteri. Međutim, postoje izuzeci: ako su vam potrebne uglaste zagrade kao karakteri, onda ih treba ekranizovati obrnutom kosom crtom.

Za primer u sledećem kodu šablon pretrage izgleda ovako: između iksa stoji uglasta zagrada:

php<?php
  $str = 'x]x xax x[x x1x';
  $res = preg_replace('#x[\[\]]x#', '!', $str);
?>

Kao rezultat u promenljivu će biti upisano sledeće:

php'! xax ! x1x'
Задание 1

Data je linija teksta:

php<?php
  $str = 'x[]z x{}z x.z x()z';
?>

Napišite regularni izraz koji će pronaći sve reči po šablonu: slovo 'x', zatim bilo koja količina bilo kojih zagrada, zatim slovo 'z'.

Задание 2

Data je linija teksta:

php<?php
  $str = '[abc] {abc} abc (abc) [abc]';
?>

Napišite regularni izraz koji će pronaći linije teksta unutar bilo kojih zagrada i zameniti ih sa '!'.