Pengecualian dalam Set di Regex PHP

Anda sudah tahu bahwa karakter khusus di dalam [] menjadi karakter biasa. Namun, ada pengecualian: jika Anda membutuhkan kurung siku sebagai karakter, maka mereka perlu di-escape dengan garis miring terbalik.

Sebagai contoh, dalam kode berikut pola pencarian terlihat seperti ini: di antara huruf x ada kurung siku:

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

Hasilnya, yang akan tersimpan di variabel adalah berikut:

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

Diberikan string:

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

Tuliskan regex yang akan menemukan semua kata berdasarkan pola: huruf 'x', diikuti oleh jumlah berapa pun dari berbagai jenis kurung, kemudian huruf 'z'.

Задание 2

Diberikan string:

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

Tuliskan regex yang akan menemukan string di dalam jenis kurung apa pun dan menggantinya dengan '!'.