2007-06-08 09:23:23 +00:00
< html >
< head >
2009-12-05 12:15:20 +00:00
< meta http-equiv = "Content-Type" content = "text/html; charset=US-ASCII" >
2007-12-14 10:11:21 +00:00
< title > Standards Conformance< / title >
2010-07-08 22:49:58 +00:00
< link rel = "stylesheet" href = "../../../../../../doc/src/boostbook.css" type = "text/css" >
2015-02-14 13:21:37 +00:00
< meta name = "generator" content = "DocBook XSL Stylesheets V1.77.1" >
2016-06-10 17:59:12 +01:00
< link rel = "home" href = "../../index.html" title = "Boost.Regex 5.1.2" >
2007-06-08 09:23:23 +00:00
< link rel = "up" href = "../background_information.html" title = "Background Information" >
2015-10-15 18:26:19 +01:00
< link rel = "prev" href = "performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html" title = "Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 5.1.0)" >
2007-12-14 10:11:21 +00:00
< link rel = "next" href = "redist.html" title = "Redistributables" >
2007-06-08 09:23:23 +00:00
< / head >
< body bgcolor = "white" text = "black" link = "#0000FF" vlink = "#840084" alink = "#0000FF" >
2007-08-13 17:54:01 +00:00
< table cellpadding = "2" width = "100%" > < tr >
2007-06-08 09:23:23 +00:00
< td valign = "top" > < img alt = "Boost C++ Libraries" width = "277" height = "86" src = "../../../../../../boost.png" > < / td >
2008-04-11 08:53:54 +00:00
< td align = "center" > < a href = "../../../../../../index.html" > Home< / a > < / td >
2007-06-08 09:23:23 +00:00
< td align = "center" > < a href = "../../../../../../libs/libraries.htm" > Libraries< / a > < / td >
2008-07-25 09:28:01 +00:00
< td align = "center" > < a href = "http://www.boost.org/users/people.html" > People< / a > < / td >
< td align = "center" > < a href = "http://www.boost.org/users/faq.html" > FAQ< / a > < / td >
2007-06-08 09:23:23 +00:00
< td align = "center" > < a href = "../../../../../../more/index.htm" > More< / a > < / td >
2007-08-13 17:54:01 +00:00
< / tr > < / table >
2007-06-08 09:23:23 +00:00
< hr >
< div class = "spirit-nav" >
2015-10-15 18:26:19 +01:00
< a accesskey = "p" href = "performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html" > < img src = "../../../../../../doc/src/images/prev.png" alt = "Prev" > < / a > < a accesskey = "u" href = "../background_information.html" > < img src = "../../../../../../doc/src/images/up.png" alt = "Up" > < / a > < a accesskey = "h" href = "../../index.html" > < img src = "../../../../../../doc/src/images/home.png" alt = "Home" > < / a > < a accesskey = "n" href = "redist.html" > < img src = "../../../../../../doc/src/images/next.png" alt = "Next" > < / a >
2007-06-08 09:23:23 +00:00
< / div >
2013-12-14 17:42:13 +00:00
< div class = "section" >
2007-06-08 09:23:23 +00:00
< div class = "titlepage" > < div > < div > < h3 class = "title" >
2011-01-01 12:27:00 +00:00
< a name = "boost_regex.background_information.standards" > < / a > < a class = "link" href = "standards.html" title = "Standards Conformance" > Standards
2007-12-14 10:11:21 +00:00
Conformance< / a >
< / h3 > < / div > < / div > < / div >
2011-12-24 17:51:57 +00:00
< h5 >
< a name = "boost_regex.background_information.standards.h0" > < / a >
2015-10-15 13:27:45 +01:00
< span class = "phrase" > < a name = "boost_regex.background_information.standards.c" > < / a > < / span > < a class = "link" href = "standards.html#boost_regex.background_information.standards.c" > C++< / a >
2007-12-14 10:11:21 +00:00
< / h5 >
2007-06-08 09:23:23 +00:00
< p >
Boost.Regex is intended to conform to the < a href = "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target = "_top" > Technical
2007-10-06 17:46:25 +00:00
Report on C++ Library Extensions< / a > .
2007-06-08 09:23:23 +00:00
< / p >
2011-12-24 17:51:57 +00:00
< h5 >
< a name = "boost_regex.background_information.standards.h1" > < / a >
2015-10-15 13:27:45 +01:00
< span class = "phrase" > < a name = "boost_regex.background_information.standards.ecmascript_javascript" > < / a > < / span > < a class = "link" href = "standards.html#boost_regex.background_information.standards.ecmascript_javascript" > ECMAScript
2007-06-08 09:23:23 +00:00
/ JavaScript< / a >
2007-12-14 10:11:21 +00:00
< / h5 >
2007-06-08 09:23:23 +00:00
< p >
All of the ECMAScript regular expression syntax features are supported, except
that:
< / p >
< p >
The escape sequence \u matches any upper case character (the same as [[:upper:]])
rather than a Unicode escape sequence; use \x{DDDD} for Unicode escape sequences.
< / p >
2011-12-24 17:51:57 +00:00
< h5 >
< a name = "boost_regex.background_information.standards.h2" > < / a >
2012-11-29 10:28:07 +00:00
< span class = "phrase" > < a name = "boost_regex.background_information.standards.perl" > < / a > < / span > < a class = "link" href = "standards.html#boost_regex.background_information.standards.perl" > Perl< / a >
2007-12-14 10:11:21 +00:00
< / h5 >
2007-06-08 09:23:23 +00:00
< p >
Almost all Perl features are supported, except for:
< / p >
< p >
(?{code}) Not implementable in a compiled strongly typed language.
< / p >
< p >
(??{code}) Not implementable in a compiled strongly typed language.
< / p >
2010-02-05 17:05:04 +00:00
< p >
(*VERB) The < a href = "http://perldoc.perl.org/perlre.html#Special-Backtracking-Control-Verbs" target = "_top" > backtracking
control verbs< / a > are not recognised or implemented at this time.
< / p >
< p >
In addition the following features behave slightly differently from Perl:
< / p >
< p >
^ $ \Z These recognise any line termination sequence, and not just \n: see
the Unicode requirements below.
< / p >
2011-12-24 17:51:57 +00:00
< h5 >
< a name = "boost_regex.background_information.standards.h3" > < / a >
2012-11-29 10:28:07 +00:00
< span class = "phrase" > < a name = "boost_regex.background_information.standards.posix" > < / a > < / span > < a class = "link" href = "standards.html#boost_regex.background_information.standards.posix" > POSIX< / a >
2007-12-14 10:11:21 +00:00
< / h5 >
2007-06-08 09:23:23 +00:00
< p >
All the POSIX basic and extended regular expression features are supported,
except that:
< / p >
< p >
No character collating names are recognized except those specified in the
POSIX standard for the C locale, unless they are explicitly registered with
the traits class.
< / p >
< p >
Character equivalence classes ( [[=a=]] etc) are probably buggy except on
Win32. Implementing this feature requires knowledge of the format of the
string sort keys produced by the system; if you need this, and the default
implementation doesn't work on your platform, then you will need to supply
a custom traits class.
< / p >
2011-12-24 17:51:57 +00:00
< h5 >
< a name = "boost_regex.background_information.standards.h4" > < / a >
2012-11-29 10:28:07 +00:00
< span class = "phrase" > < a name = "boost_regex.background_information.standards.unicode" > < / a > < / span > < a class = "link" href = "standards.html#boost_regex.background_information.standards.unicode" > Unicode< / a >
2007-12-14 10:11:21 +00:00
< / h5 >
2007-06-08 09:23:23 +00:00
< p >
The following comments refer to < a href = "http://unicode.org/reports/tr18/" target = "_top" > Unicode
Technical Standard #18: Unicode Regular Expressions version 11< / a > .
< / p >
< div class = "informaltable" > < table class = "table" >
< colgroup >
< col >
< col >
< col >
< / colgroup >
< thead > < tr >
< th >
2010-07-08 22:49:58 +00:00
< p >
Item
< / p >
2007-06-08 09:23:23 +00:00
< / th >
< th >
2010-07-08 22:49:58 +00:00
< p >
Feature
< / p >
2007-06-08 09:23:23 +00:00
< / th >
< th >
2010-07-08 22:49:58 +00:00
< p >
Support
< / p >
2007-06-08 09:23:23 +00:00
< / th >
< / tr > < / thead >
< tbody >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
1.1
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Hex Notation
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Yes: use \x{DDDD} to refer to code point UDDDD.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
1.2
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Character Properties
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
All the names listed under the General Category Property are supported.
Script names and Other Names are not currently supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
1.3
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Subtraction and Intersection
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Indirectly support by forward-lookahead:
< / p >
< p >
< code class = "computeroutput" > < span class = "special" > (?=[[:< / span > < span class = "identifier" > X< / span > < span class = "special" > :]])[[:< / span > < span class = "identifier" > Y< / span > < span class = "special" > :]]< / span > < / code >
< / p >
< p >
Gives the intersection of character properties X and Y.
< / p >
< p >
< code class = "computeroutput" > < span class = "special" > (?![[:< / span > < span class = "identifier" > X< / span > < span class = "special" > :]])[[:< / span > < span class = "identifier" > Y< / span > < span class = "special" > :]]< / span > < / code >
< / p >
< p >
Gives everything in Y that is not in X (subtraction).
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
1.4
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Simple Word Boundaries
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Conforming: non-spacing marks are included in the set of word characters.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
1.5
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Caseless Matching
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Supported, note that at this level, case transformations are 1:1,
many to many case folding operations are not supported (for example
"ß " to "SS").
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
1.6
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Line Boundaries
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Supported, except that "." matches only one character
of "\r\n". Other than that word boundaries match correctly;
including not matching in the middle of a "\r\n" sequence.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
1.7
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Code Points
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Supported: provided you use the u32* algorithms, then UTF-8, UTF-16
and UTF-32 are all treated as sequences of 32-bit code points.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
2.1
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Canonical Equivalence
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not supported: it is up to the user of the library to convert all
text into the same canonical form as the regular expression.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
2.2
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Default Grapheme Clusters
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
2.3Default Word Boundaries
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
2009-12-05 12:15:20 +00:00
< td class = "auto-generated" >   < / td >
2007-06-08 09:23:23 +00:00
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
2.4
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Default Loose Matches
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not Supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
2.5
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Named Properties
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Supported: the expression "[[:name:]]" or \N{name} matches
the named character "name".
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
2.6
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Wildcard properties
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not Supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.1
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Tailored Punctuation.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not Supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.2
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Tailored Grapheme Clusters
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not Supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.3
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Tailored Word Boundaries.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not Supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.4
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Tailored Loose Matches
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Partial support: [[=c=]] matches characters with the same primary
equivalence class as "c".
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.5
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Tailored Ranges
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Supported: [a-b] matches any character that collates in the range
a to b, when the expression is constructed with the collate flag
set.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.6
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Context Matches
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not Supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.7
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Incremental Matches
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Supported: pass the flag < code class = "computeroutput" > < span class = "identifier" > match_partial< / span > < / code >
to the regex algorithms.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.8
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Unicode Set Sharing
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not Supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.9
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Possible Match Sets
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not supported, however this information is used internally to optimise
the matching of regular expressions, and return quickly if no match
is possible.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.10
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Folded Matching
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Partial Support: It is possible to achieve a similar effect by
using a custom regular expression traits class.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
3.11
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Custom Submatch Evaluation
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
Not Supported.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< / tbody >
< / table > < / div >
< / div >
< table xmlns:rev = "http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width = "100%" > < tr >
< td align = "left" > < / td >
2013-12-18 17:25:26 +00:00
< td align = "right" > < div class = "copyright-footer" > Copyright © 1998-2013 John Maddock< p >
2007-11-07 03:23:31 +00:00
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at < a href = "http://www.boost.org/LICENSE_1_0.txt" target = "_top" > http://www.boost.org/LICENSE_1_0.txt< / a > )
2007-12-14 10:11:21 +00:00
< / p >
< / div > < / td >
2007-06-08 09:23:23 +00:00
< / tr > < / table >
< hr >
< div class = "spirit-nav" >
2015-10-15 18:26:19 +01:00
< a accesskey = "p" href = "performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html" > < img src = "../../../../../../doc/src/images/prev.png" alt = "Prev" > < / a > < a accesskey = "u" href = "../background_information.html" > < img src = "../../../../../../doc/src/images/up.png" alt = "Up" > < / a > < a accesskey = "h" href = "../../index.html" > < img src = "../../../../../../doc/src/images/home.png" alt = "Home" > < / a > < a accesskey = "n" href = "redist.html" > < img src = "../../../../../../doc/src/images/next.png" alt = "Next" > < / a >
2007-06-08 09:23:23 +00:00
< / div >
< / body >
< / html >