PHP正規表現における文字クラス内の例外

あなたは既に、[] 内の特殊文字は通常の文字になることを知っています。 しかし、例外があります:角括弧自体を文字として必要とする場合は、バックスラッシュでエスケープする必要があります。

例として、次のコードの検索パターンは次のようになります:Xの間に角括弧がある:

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]';
?>

任意の括弧内の文字列を見つけ、それらを '!' に置き換える正規表現を書いてください。