Выключэнні ўнутры набораў у рэгулярках у рэгулярках PHP

Вы ўжо ведаеце, што спецсімвалы ўнутры [] становяцца звычайнымі сімваламі. Ёсць, аднак, выключэнні: калі вам патрэбныя квадратныя дужкі як сімвалы, то іх трэба экранаваць адваротным слэшам.

Для прыкладу ў наступным кодзе шаблон пошуку выглядае так: паміж іксамі стаіць квадратная дужка:

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

У выніку ў зменную запішацца наступнае:

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

Дадзены радок:

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

Напішыце рэгулярку, якая знойдзе ўсе словы па шаблоне: літара 'x', затым любую колькасць любых дужак, затым літара 'z'.

Задание 2

Дадзены радок:

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

Напішыце рэгулярку, якая знойдзе радкі ў любых дужках і заменіць іх на '!'.