Исключения внутри наборов в регулярках Python

Вы уже знаете, что спецсимволы внутри [] становятся обычными символами. Есть, однако, исключения: если вам нужны квадратные скобки как символы внутри [ ] - то их нужно экранировать обратным слешем. Для примера в следующем коде шаблон поиска выглядит так: между иксами стоит квадратная скобка:

pythontxt = 'x]x xax x[x x1x'
res = re.sub('x[\[\]]x', '!', txt)

print(res)

В результате в переменную запишется следующее:

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

Дана строка:

pythontxt = 'x[]z x[[]]z x()z'

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

Задание 2

Дана строка:

pythontxt = 'x[]z x{}z x.z x()z x([])z'

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