Você não pode incluir um ]
em uma classe de caracteres por meio de barras invertidas. Deve ser o primeiro elemento da classe. O mesmo vale para o traço, mas desta vez, deve ser o último. \-\^
corresponde apenas ao intervalo de \
a \
, ou seja, a contrabarra e o contrassenso. (Eu removi barras invertidas inúteis também).
regex='^[]0-9a-zA-Z,!^'@{}=().;/~_|[-]*$'
Tem certeza de que deseja *
, não +
? Você realmente quer aceitar cordas vazias?