Истисноҳо дар дохили маҷмӯъҳо дар ибораҳои мунтазами 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]';
?>

Ибораи мунтазаме нависед, ки резеҳҳоро дар ҳар гуна қофа пайдо кунад ва онҳоро ба '!' иваз кунад.