Как не рабочий?
preg_match("|[0-9A-Za-zА-Яа-я]|", "$_POST['login']") такая строка выдаст ошибку синтаксиса
Странно проверял не чего не было, хотя я ' к переменным добавлял
либо "$_POST[login]" либо $_POST['login']