Что не так с этим регулярным выражением PHP для проверки пароля?

ereg("/^(?=.*[a-z])(?=.*[0-9])(?=.*[^a-zA-Z0-9])(?=.*[A-Z]).{7,19}$/","ABCabc123!!");

Предполагается, что это валидатор паролей, для которого требуются алфавиты в верхнем и нижнем регистре, а также числа специальных символов и минимальная длина 8 .... но приведенное выше возвращает false. Что я делаю неправильно?

Ответы на вопрос(2)

Ваш ответ на вопрос