Exceções dentro de conjuntos em expressões regulares do Python

Você já sabe que caracteres especiais dentro de [] tornam-se caracteres comuns. No entanto, há exceções: se você precisar de colchetes como símbolos dentro de [ ] - então eles precisam ser escapados com uma barra invertida. Para exemplificar, no código a seguir o padrão de busca é o seguinte: entre os x's há um colchete:

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

print(res)

Como resultado, o seguinte será armazenado na variável:

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

Dada a string:

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

Escreva uma expressão regular que encontre todas as palavras pelo padrão: letra 'x', seguido por colchetes qualquer número de vezes, seguido pela letra 'z'.

Задание 2

Dada a string:

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

Escreva uma expressão regular que encontre todas as palavras pelo padrão: letra 'x', seguido por qualquer número de qualquer tipo de colchetes, seguido pela letra 'z'.