"Диапазон не в порядке в классе символов" в PHP регулярное выражение?

Я пытаюсь получить эту работу некоторое время, но напрасно. Я хочу создать регулярное выражение php, чтобы проверить, имеет ли строка по крайней мере одно число и по крайней мере один из символов среди (_- + = * &)

Это мое регулярное выражение

$result = preg_match('/^(?=.*\d)(?=.*[_-+=*&]).{3,}$/',$pass); 

Я получаю следующую ошибку. Предупреждение: preg_match () [function.preg-match]: Ошибка компиляции: диапазон не соответствует порядку в символьном классе со смещением 17 в myfile.php в строке 8

любая помощь ?

- необходимо экранировать или помещать в начало / конец списка [...] :

 $result = preg_match('/^(?=.*\d)(?=.*[-_+=*&]).{3,}$/',$pass); 

Если вы этого не сделаете, - интерпретируется как оператор диапазона, и если x > y в [xy] вы получите эту ошибку.