/
^(?#protocol)(?<protocol>(?:ht|f)tps?)\:(?:\/\/)?(?#user/password)(?:(?<user>\S+?)(?::(?<password>\S+))?@)?(?#domaine)(?<domain>(?:(?:[a-z\x{00a1}-\x{ffff}0-9-]++\.)+(?#top_level_domain)(?<top_level_domain>[a-z\x{00a1}-\x{ffff}]{2,}))|(?<ip>(?:1?\d{1,2}|2[0-4]\d|25[0-5])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){3}))(?#port)(?::(?<port>\d{1,5}))?(?#directory)(?<directory>\/(?:[^?#\s])*)?(?#query)(?:\?(?<query>[^#\s]*))?(?#anchor)(?:#(?<anchor>[^\s]*))?$
/
guim