https://datatracker.ietf.org/doc/html/rfc2396 В RFC 2396 есть прям даже пример POSIX регулярного выражения для парсинга URI. В том же Perl можно использовать напрямую.