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

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

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

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

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

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

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

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

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

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