3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Standards Conformance</title>
5 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../index.html" title="Boost.Regex 5.1.4">
8 <link rel="up" href="../background.html" title="Background Information">
9 <link rel="prev" href="performance/section_id4148872883.html" title="Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 6.3.0)">
10 <link rel="next" href="redist.html" title="Redistributables">
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
22 <div class="spirit-nav">
23 <a accesskey="p" href="performance/section_id4148872883.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../background.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>
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="boost_regex.background.standards"></a><a class="link" href="standards.html" title="Standards Conformance">Standards Conformance</a>
28 </h3></div></div></div>
30 <a name="boost_regex.background.standards.h0"></a>
31 <span class="phrase"><a name="boost_regex.background.standards.c"></a></span><a class="link" href="standards.html#boost_regex.background.standards.c">C++</a>
34 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
35 Report on C++ Library Extensions</a>.
38 <a name="boost_regex.background.standards.h1"></a>
39 <span class="phrase"><a name="boost_regex.background.standards.ecmascript_javascript"></a></span><a class="link" href="standards.html#boost_regex.background.standards.ecmascript_javascript">ECMAScript
43 All of the ECMAScript regular expression syntax features are supported, except
47 The escape sequence \u matches any upper case character (the same as [[:upper:]])
48 rather than a Unicode escape sequence; use \x{DDDD} for Unicode escape sequences.
51 <a name="boost_regex.background.standards.h2"></a>
52 <span class="phrase"><a name="boost_regex.background.standards.perl"></a></span><a class="link" href="standards.html#boost_regex.background.standards.perl">Perl</a>
55 Almost all Perl features are supported, except for:
58 (?{code}) Not implementable in a compiled strongly typed language.
61 (??{code}) Not implementable in a compiled strongly typed language.
64 (*VERB) The <a href="http://perldoc.perl.org/perlre.html#Special-Backtracking-Control-Verbs" target="_top">backtracking
65 control verbs</a> are not recognised or implemented at this time.
68 In addition the following features behave slightly differently from Perl:
71 ^ $ \Z These recognise any line termination sequence, and not just \n: see
72 the Unicode requirements below.
75 <a name="boost_regex.background.standards.h3"></a>
76 <span class="phrase"><a name="boost_regex.background.standards.posix"></a></span><a class="link" href="standards.html#boost_regex.background.standards.posix">POSIX</a>
79 All the POSIX basic and extended regular expression features are supported,
83 No character collating names are recognized except those specified in the
84 POSIX standard for the C locale, unless they are explicitly registered with
88 Character equivalence classes ( [[=a=]] etc) are probably buggy except on
89 Win32. Implementing this feature requires knowledge of the format of the
90 string sort keys produced by the system; if you need this, and the default
91 implementation doesn't work on your platform, then you will need to supply
92 a custom traits class.
95 <a name="boost_regex.background.standards.h4"></a>
96 <span class="phrase"><a name="boost_regex.background.standards.unicode"></a></span><a class="link" href="standards.html#boost_regex.background.standards.unicode">Unicode</a>
99 The following comments refer to <a href="http://unicode.org/reports/tr18/" target="_top">Unicode
100 Technical Standard #18: Unicode Regular Expressions version 11</a>.
102 <div class="informaltable"><table class="table">
139 Yes: use \x{DDDD} to refer to code point UDDDD.
156 All the names listed under the General Category Property are supported.
157 Script names and Other Names are not currently supported.
169 Subtraction and Intersection
174 Indirectly support by forward-lookahead:
177 <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>
180 Gives the intersection of character properties X and Y.
183 <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>
186 Gives everything in Y that is not in X (subtraction).
198 Simple Word Boundaries
203 Conforming: non-spacing marks are included in the set of word characters.
220 Supported, note that at this level, case transformations are 1:1,
221 many to many case folding operations are not supported (for example
239 Supported, except that "." matches only one character
240 of "\r\n". Other than that word boundaries match correctly;
241 including not matching in the middle of a "\r\n" sequence.
258 Supported: provided you use the u32* algorithms, then UTF-8, UTF-16
259 and UTF-32 are all treated as sequences of 32-bit code points.
271 Canonical Equivalence
276 Not supported: it is up to the user of the library to convert all
277 text into the same canonical form as the regular expression.
289 Default Grapheme Clusters
301 2.3Default Word Boundaries
309 <td class="auto-generated"> </td>
319 Default Loose Matches
341 Supported: the expression "[[:name:]]" or \N{name} matches
342 the named character "name".
371 Tailored Punctuation.
388 Tailored Grapheme Clusters
405 Tailored Word Boundaries.
422 Tailored Loose Matches
427 Partial support: [[=c=]] matches characters with the same primary
428 equivalence class as "c".
445 Supported: [a-b] matches any character that collates in the range
446 a to b, when the expression is constructed with the collate flag
481 Supported: pass the flag <code class="computeroutput"><span class="identifier">match_partial</span></code>
482 to the regex algorithms.
516 Not supported, however this information is used internally to optimise
517 the matching of regular expressions, and return quickly if no match
535 Partial Support: It is possible to achieve a similar effect by
536 using a custom regular expression traits class.
548 Custom Submatch Evaluation
560 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
561 <td align="left"></td>
562 <td align="right"><div class="copyright-footer">Copyright © 1998-2013 John Maddock<p>
563 Distributed under the Boost Software License, Version 1.0. (See accompanying
564 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>)
569 <div class="spirit-nav">
570 <a accesskey="p" href="performance/section_id4148872883.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../background.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>