/^[a-z]+([-]?[a-z0-9]+){0,2}$/i Начинается и кончается на букву/цифру и содержит не более двух ""/"-" и не подряд. Т.е. пропустит "admin_0-15", "user", "user-lol" и не пропустит "admin--12", "user_lol-", "lamer--", "-a-"