Wyjątki wewnątrz zestawów w wyrażeniach regularnych JavaScript

Wiesz już, że znaki specjalne wewnątrz [] stają się zwykłymi znakami. Istnieją jednak wyjątki: jeśli potrzebujesz nawiasów kwadratowych jako znaków wewnątrz [ ] - to należy je poprzedzić odwrotnym ukośnikiem. Dla przykładu w następującym kodzie wzorzec wyszukiwania wygląda tak: pomiędzy iksami stoi nawias kwadratowy:

javascriptlet str = 'x]x xax x[x x1x';
let res = str.replace(/x[\[\]]x/g, '!');

W rezultacie do zmiennej zostanie zapisane następująco:

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

Dany jest ciąg znaków:

javascriptlet str = 'x[]z x[[]]z x()z';

Napisz wyrażenie regularne, które znajdzie wszystkie wyrazy według wzorca: litera 'x', następnie nawiasy kwadratowe dowolną liczbę razy, następnie litera 'z'.

Задание 2

Dany jest ciąg znaków:

javascriptlet str = 'x[]z x{}z x.z x()z x([])z';

Napisz wyrażenie regularne, które znajdzie wszystkie wyrazy według wzorca: litera 'x', następnie dowolna liczba dowolnych nawiasów, następnie litera 'z'.