O que há de errado com este regex PHP para fazer a validação de senha?
ereg("/^(?=.*[a-z])(?=.*[0-9])(?=.*[^a-zA-Z0-9])(?=.*[A-Z]).{7,19}$/","ABCabc123!!");
Este é suposto ser um validador de senha, exigindo alfabetos em maiúsculas e minúsculas, juntamente com números caracteres especiais e comprimento mínimo de 8 .... mas o acima retorna falso. O que estou fazendo de errado?