Код: Выделить всё
/^([a-z0-9абвгдеёжзийклмнопрстуфхцчшщьыъэюя]([a-z0-9абвгдеёжзийклмнопрстуфхцчшщьыъэюя\-]*[a-z0-9абвгдеёжзийклмнопрстуфхцчшщьыъэюя])*\.)+[a-zрф]{2,4}$/ui
всё хорошо, но, автор не учёл что доменное имя не может быть короче трёх символов (потому как все двухбуквенники зарезервированы), и, несмотря на то что такие имена есть - заюзать их нельзя.
также, оно не может быть длинней 63 символов
невкурю, куда добавить {3,63} чтоб правильно чекало...