replace(/\\t/, ' ')
или укажите подробнее, какой версией перла пользуетесь, да действительно ли в качестве символа табуляции вы имеете ввиду последовательность '\t'.
потому что punycode.
например, то, что вы видите как пример.рф, в доменной зоне у регистратора прописано как xn--e1afmkfd.xn--p1ai. с наскоку как минимум не удовлетворяет вашему [A-Za-zа-яА-ЯёЁ]{2,4}.
как правильно - зависит от задачи. если пропускать домены с кириллическими именами - исправьте то, что пометил, сняв ограничение на длину и добавив в список валидных символов цифры и знак дефиса. если валидировать любые e-mail адреса - оставить только проверку на символ @ и наличие как минимум одного символа в локальной и доменной частях e-mail.