Changes for version 2025102001 - 2026-04-02
- Initial release as a standalone CPAN distribution.
- Provides Regexp::Common::URI::RFC3986, a complete set of regex building blocks transcribed from RFC 3986 (Uniform Resource Identifier: Generic Syntax, January 2005), superseding RFC 2396.
- No dependency on Regexp::Common: all variables are plain interpolable strings exported via Exporter. The module can be used independently of the Regexp::Common framework.
- Key improvements over Regexp::Common::URI::RFC2396:
- $pct_encoded (replaces the old $escaped, kept as alias)
- $sub_delims and $unreserved per RFC 3986 ยง2
- Full path_* production set: $path_abempty, $path_absolute, $path_noscheme, $path_rootless, $path_empty
- $IP_literal supporting IPv6 addresses and IPvFuture forms
- $IPv6address as a faithful transcription of all 9 alternatives from RFC 3986 Appendix A (the original RFC2396 module predates IPv6 literal support entirely)
- Addition with $IPv6address relative to the PR originally submitted to Regexp-Common on 2025-10-20: the alternation set previously had only 8 forms, missing the 8th RFC 3986 alternative:
- [ *5( h16 ":" ) h16 ] "::" h16
- This would have caused addresses such as "::1", "fe80::1", and "2001:db8::1" to fail to match. All 9 alternatives are now correctly implemented.
- Backward-compatibility aliases for RFC 2396 names are exported: $mark, $uric, $urics, $uric_no_slash, $escaped, $hostname, $domainlabel, $toplabel, $hostport, $server, $rel_segment, $rel_path, $path_segments, $abs_path, $path, $ftp_segments.
- Optional non-normative Unicode/IDN helpers under the :IDN export tag: $IDN_DOT, $ACE, $IDN_U_LABEL, $IDN_HOST.
- Test suite: 162 tests, fully standalone (no dependency on the t::Common helper from Regexp-Common).
Modules
Regexp patterns from RFC 3986