Изключения внутри набори в регулярните изрази на JavaScript

Вече знаете, че специалните символи вътре в [] стават обикновени символи. Има обаче изключения: ако имате нужда от квадратни скоби като символи вътре в [ ] - тогава те трябва да бъдат екранирани с обратна наклонена черта. За пример в следния код шаблонът за търсене изглежда така: между иксовете стои квадратна скоба:

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

В резултат в променливата ще бъде записано следното:

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

Даден е низ:

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

Напишете регулярен израз, който ще намери всички думи по шаблон: буква 'x', след това квадратни скоби произволен брой пъти, след това буква 'z'.

Задание 2

Даден е низ:

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

Напишете регулярен израз, който ще намери всички думи по шаблон: буква 'x', след това произволен брой произволни скоби, след това буква 'z'.