Соответствие URL IDN

Мне нужна помощь в создании регулярного выражения, которое может правильно соответствовать URL внутри свободного текста.

схемаОдно из следующего:FTP,HTTP,HTTPS (являетсяFTPS протокол?)необязательныйпользователь (и необязательнопроходить)хозяин (с поддержкой ИДИ)Поддержка дляWWW а такжесуб-домен (ов) (с поддержкой ИДИ)базовая фильтрация TLD ([a-zA-Z]{2,6} мне кажется достаточно)необязательныйпорт числодорожка (необязательно, с поддержкой символов Unicode)запрос (необязательно, с поддержкой символов Unicode)фрагмент (необязательно, с поддержкой символов Unicode)

Вот что я мог узнать о поддоменах: A "

поддомен» выражает относительную зависимость, а не абсолютную зависимость: например, wikipedia.org содержит поддомен домена org, а en.wikipedia.org содержит поддомен домена wikipedia.org. Теоретически, это подразделение может опуститься до 127 уровней, и каждая метка DNS может содержать до 63 символов, если полное доменное имя не превышает общую длину 255 символов.

Что касается самого доменного имени, я не могне могу найти надежный источник, но я думаю, что регулярное выражениедля не-ИДИ (Я'я не уверен, как написать IDN-совместимую версию) это что-то вроде:

[0-9a-zA-Z][0-9a-zA-Z\-]{2,62}

Может ли кто-нибудь помочь мне с этим регулярным выражением или указать мне правильное направление?

Ответы на вопрос(3)

Ваш ответ на вопрос