Нет, ты и топикстартер в корне неправы. Вы, фактически, вредители. Естественно, ПОЛЬЗОВАТЕЛЬ не должен мучиться, пытаясь угадать, под какой регэксп он должен подстроить свой телефон.
>опыт как бы говит мне, что дай юзеру возможность ввести не по маске - он введет любую фигню, которую ни один регескп не возьмет.
почему нельзя вырезать все нецифры (как уже предложено \D), и интерпретировать телефон как целое (ЕМНИП они в php 64х битные)?
если телефон меньше 10000000, то добавить к нему код города. (у меня в Питере номера 7и значные), а если номер менее 1000000000, добавить к нему 7000000000. Всё-же просто. И пусть юзер вводит что ему в голову взбредёт - всё будет правильно. ну нравится юзверю Ψ в номер вставлять - да и хрен с ним.