Исключения внутри наборов во регуларните изрази на 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'.