if (preg_match('/[^\dA-zА-я\-\@\*\(\)\?\!\~\_\=\[\]]+/', $name)) ругается на маленькие русские символы, должен пропускать и английские (большие и маленькие) и русские (большие и маленькие), что там не так? if (preg_match('/[^\dA-zА-я\-\@\*\(\)\?\!\~\_\=\[\]]+/', $name)) ругается на маленькие русские символы, должен пропускать и английские (большие и маленькие) и русские (большие и маленькие), что там не так?