rfc9485.txt   rfc9485-stdtags.txt 
skipping to change at line 81 skipping to change at line 81
(abbreviated as "regexp") flavor, I-Regexp. (abbreviated as "regexp") flavor, I-Regexp.
I-Regexp does not provide advanced regular expression features such I-Regexp does not provide advanced regular expression features such
as capture groups, lookahead, or backreferences. It supports only a as capture groups, lookahead, or backreferences. It supports only a
Boolean matching capability, i.e., testing whether a given regular Boolean matching capability, i.e., testing whether a given regular
expression matches a given piece of text. expression matches a given piece of text.
I-Regexp supports the entire repertoire of Unicode characters I-Regexp supports the entire repertoire of Unicode characters
(Unicode scalar values); both the I-Regexp strings themselves and the (Unicode scalar values); both the I-Regexp strings themselves and the
strings they are matched against are sequences of Unicode scalar strings they are matched against are sequences of Unicode scalar
values (often represented in UTF-8 encoding form [RFC3629] for values (often represented in UTF-8 encoding form [STD63] for
interchange). interchange).
I-Regexp is a subset of XML Schema Definition (XSD) regular I-Regexp is a subset of XML Schema Definition (XSD) regular
expressions [XSD-2]. expressions [XSD-2].
This document includes guidance for converting I-Regexps for use with This document includes guidance for converting I-Regexps for use with
several well-known regular expression idioms. several well-known regular expression idioms.
The development of I-Regexp was motivated by the work of the JSONPath The development of I-Regexp was motivated by the work of the JSONPath
Working Group (WG). The WG wanted to include support for the use of Working Group (WG). The WG wanted to include support for the use of
skipping to change at line 337 skipping to change at line 337
libraries in severely constrained environments may not be able to libraries in severely constrained environments may not be able to
support I-Regexp conformance. support I-Regexp conformance.
7. IANA Considerations 7. IANA Considerations
This document has no IANA actions. This document has no IANA actions.
8. Security Considerations 8. Security Considerations
While technically out of the scope of this specification, Section 10 While technically out of the scope of this specification, Section 10
("Security Considerations") of [RFC3629] applies to implementations. ("Security Considerations") of RFC 3629 [STD63] applies to
Particular note needs to be taken of the last paragraph of Section 3 implementations. Particular note needs to be taken of the last
("UTF-8 definition") of [RFC3629]; an I-Regexp implementation may paragraph of Section 3 ("UTF-8 definition") of RFC 3629 [STD63]; an
need to mitigate limitations of the platform implementation in this I-Regexp implementation may need to mitigate limitations of the
regard. platform implementation in this regard.
As discussed in Section 6, more complex regexp libraries may contain As discussed in Section 6, more complex regexp libraries may contain
exploitable bugs, which can lead to crashes and remote code exploitable bugs, which can lead to crashes and remote code
execution. There is also the problem that such libraries often have execution. There is also the problem that such libraries often have
performance characteristics that are hard to predict, leading to performance characteristics that are hard to predict, leading to
attacks that overload an implementation by matching against an attacks that overload an implementation by matching against an
expensive attacker-controlled regexp. expensive attacker-controlled regexp.
I-Regexps have been designed to allow implementation in a way that is I-Regexps have been designed to allow implementation in a way that is
resilient to both threats; this objective needs to be addressed resilient to both threats; this objective needs to be addressed
skipping to change at line 444 skipping to change at line 444
ietf-jsonpath-base-20>. ietf-jsonpath-base-20>.
[PCRE2] "Perl-compatible Regular Expressions (revised API: [PCRE2] "Perl-compatible Regular Expressions (revised API:
PCRE2)", <http://pcre.org/current/doc/html/>. PCRE2)", <http://pcre.org/current/doc/html/>.
[RE2] "RE2 is a fast, safe, thread-friendly alternative to [RE2] "RE2 is a fast, safe, thread-friendly alternative to
backtracking regular expression engines like those used in backtracking regular expression engines like those used in
PCRE, Perl, and Python. It is a C++ library.", commit PCRE, Perl, and Python. It is a C++ library.", commit
73031bb, <https://github.com/google/re2>. 73031bb, <https://github.com/google/re2>.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
2003, <https://www.rfc-editor.org/info/rfc3629>.
[RFC7493] Bray, T., Ed., "The I-JSON Message Format", RFC 7493, [RFC7493] Bray, T., Ed., "The I-JSON Message Format", RFC 7493,
DOI 10.17487/RFC7493, March 2015, DOI 10.17487/RFC7493, March 2015,
<https://www.rfc-editor.org/info/rfc7493>. <https://www.rfc-editor.org/info/rfc7493>.
[STD63] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
<https://www.rfc-editor.org/info/std63>
[UNICODE-GLOSSARY] [UNICODE-GLOSSARY]
Unicode, Inc., "Glossary of Unicode Terms", Unicode, Inc., "Glossary of Unicode Terms",
<https://unicode.org/glossary/>. <https://unicode.org/glossary/>.
Acknowledgements Acknowledgements
Discussion in the IETF JSONPATH WG about whether to include a regexp Discussion in the IETF JSONPATH WG about whether to include a regexp
mechanism into the JSONPath query expression specification and mechanism into the JSONPath query expression specification and
previous discussions about the YANG pattern and Concise Data previous discussions about the YANG pattern and Concise Data
Definition Language (CDDL) .regexp features motivated this Definition Language (CDDL) .regexp features motivated this
 End of changes. 4 change blocks. 
10 lines changed or deleted 11 lines changed or added

This html diff was produced by rfcdiff 1.48.