Document changes.

This commit is contained in:
jzmaddock
2015-10-05 19:13:04 +01:00
parent 201d3a424e
commit 2a5a5f3825
5 changed files with 114 additions and 23 deletions

View File

@ -15,6 +15,15 @@ Currently open issues can be viewed [@https://svn.boost.org/trac/boost/query?sta
All issues including closed ones can be viewed [@https://svn.boost.org/trac/boost/query?status=assigned&status=closed&status=new&status=reopened&component=regex&order=priority&col=id&col=summary&col=status&col=type&col=milestone&col=component here]. All issues including closed ones can be viewed [@https://svn.boost.org/trac/boost/query?status=assigned&status=closed&status=new&status=reopened&component=regex&order=priority&col=id&col=summary&col=status&col=type&col=milestone&col=component here].
[h4 Boost.Regex-5.1.0]
* Add support for Perl's backtracking control verbs, see [@https://svn.boost.org/trac/boost/ticket/11205 #11205]. Note however, that
(*MARK) and operations on marks are not currently supported.
* Fix incorrect range end when matching \[\[:unicode:\]\], see [@https://svn.boost.org/trac/boost/ticket/11524 #11524].
* Change POSIX reg_comp API to not check potentially uninitialized memory, note that code which was previously free from memory
leaks (but none the less buggy, as it didn't call reg_free) will now leak. See [@https://svn.boost.org/trac/boost/ticket/11472 #11472].
* Make sub_match a valid C++ range type, see [@https://svn.boost.org/trac/boost/ticket/11036 #11036].
[h4 Boost.Regex-5.0.1 (Boost-1.58.0)] [h4 Boost.Regex-5.0.1 (Boost-1.58.0)]
* Fixed some typos as in [@https://svn.boost.org/trac/boost/ticket/10682 #10682]. * Fixed some typos as in [@https://svn.boost.org/trac/boost/ticket/10682 #10682].

View File

@ -37,6 +37,28 @@
</p> </p>
<h5> <h5>
<a name="boost_regex.background_information.history.h0"></a> <a name="boost_regex.background_information.history.h0"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_regex_5_1_0"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_regex_5_1_0">Boost.Regex-5.1.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Add support for Perl's backtracking control verbs, see <a href="https://svn.boost.org/trac/boost/ticket/11205" target="_top">#11205</a>.
Note however, that (*MARK) and operations on marks are not currently
supported.
</li>
<li class="listitem">
Fix incorrect range end when matching [[:unicode:]], see <a href="https://svn.boost.org/trac/boost/ticket/11524" target="_top">#11524</a>.
</li>
<li class="listitem">
Change POSIX reg_comp API to not check potentially uninitialized memory,
note that code which was previously free from memory leaks (but none
the less buggy, as it didn't call reg_free) will now leak. See <a href="https://svn.boost.org/trac/boost/ticket/11472" target="_top">#11472</a>.
</li>
<li class="listitem">
Make sub_match a valid C++ range type, see <a href="https://svn.boost.org/trac/boost/ticket/11036" target="_top">#11036</a>.
</li>
</ul></div>
<h5>
<a name="boost_regex.background_information.history.h1"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_regex_5_0_1__boost_1_58_0_"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_regex_5_0_1__boost_1_58_0_">Boost.Regex-5.0.1 <span class="phrase"><a name="boost_regex.background_information.history.boost_regex_5_0_1__boost_1_58_0_"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_regex_5_0_1__boost_1_58_0_">Boost.Regex-5.0.1
(Boost-1.58.0)</a> (Boost-1.58.0)</a>
</h5> </h5>
@ -69,7 +91,7 @@
</li> </li>
</ul></div> </ul></div>
<h5> <h5>
<a name="boost_regex.background_information.history.h1"></a> <a name="boost_regex.background_information.history.h2"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_regex_5_0_0__boost_1_56_0_"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_regex_5_0_0__boost_1_56_0_">Boost.Regex-5.0.0 <span class="phrase"><a name="boost_regex.background_information.history.boost_regex_5_0_0__boost_1_56_0_"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_regex_5_0_0__boost_1_56_0_">Boost.Regex-5.0.0
(Boost-1.56.0)</a> (Boost-1.56.0)</a>
</h5> </h5>
@ -102,14 +124,14 @@
</li> </li>
</ul></div> </ul></div>
<h5> <h5>
<a name="boost_regex.background_information.history.h2"></a> <a name="boost_regex.background_information.history.h3"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_54"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_54">Boost-1.54</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_54"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_54">Boost-1.54</a>
</h5> </h5>
<p> <p>
Fixed issue <a href="https://svn.boost.org/trac/boost/ticket/8569" target="_top">#8569</a>. Fixed issue <a href="https://svn.boost.org/trac/boost/ticket/8569" target="_top">#8569</a>.
</p> </p>
<h5> <h5>
<a name="boost_regex.background_information.history.h3"></a> <a name="boost_regex.background_information.history.h4"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_53"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_53">Boost-1.53</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_53"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_53">Boost-1.53</a>
</h5> </h5>
<p> <p>
@ -117,7 +139,7 @@
<a href="https://svn.boost.org/trac/boost/ticket/7644" target="_top">#7644</a>. <a href="https://svn.boost.org/trac/boost/ticket/7644" target="_top">#7644</a>.
</p> </p>
<h5> <h5>
<a name="boost_regex.background_information.history.h4"></a> <a name="boost_regex.background_information.history.h5"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_51"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_51">Boost-1.51</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_51"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_51">Boost-1.51</a>
</h5> </h5>
<p> <p>
@ -127,7 +149,7 @@
<a href="https://svn.boost.org/trac/boost/ticket/6346" target="_top">#6346</a>. <a href="https://svn.boost.org/trac/boost/ticket/6346" target="_top">#6346</a>.
</p> </p>
<h5> <h5>
<a name="boost_regex.background_information.history.h5"></a> <a name="boost_regex.background_information.history.h6"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_50"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_50">Boost-1.50</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_50"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_50">Boost-1.50</a>
</h5> </h5>
<p> <p>
@ -136,7 +158,7 @@
expression. expression.
</p> </p>
<h5> <h5>
<a name="boost_regex.background_information.history.h6"></a> <a name="boost_regex.background_information.history.h7"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_48"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_48">Boost-1.48</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_48"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_48">Boost-1.48</a>
</h5> </h5>
<p> <p>
@ -146,7 +168,7 @@
<a href="https://svn.boost.org/trac/boost/ticket/5736" target="_top">#5736</a>. <a href="https://svn.boost.org/trac/boost/ticket/5736" target="_top">#5736</a>.
</p> </p>
<h5> <h5>
<a name="boost_regex.background_information.history.h7"></a> <a name="boost_regex.background_information.history.h8"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_47"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_47">Boost 1.47</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_47"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_47">Boost 1.47</a>
</h5> </h5>
<p> <p>
@ -158,7 +180,7 @@
<a href="https://svn.boost.org/trac/boost/ticket/5504" target="_top">#5504</a>. <a href="https://svn.boost.org/trac/boost/ticket/5504" target="_top">#5504</a>.
</p> </p>
<h5> <h5>
<a name="boost_regex.background_information.history.h8"></a> <a name="boost_regex.background_information.history.h9"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_44"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_44">Boost 1.44</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_44"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_44">Boost 1.44</a>
</h5> </h5>
<p> <p>
@ -176,7 +198,7 @@
<a href="https://svn.boost.org/trac/boost/ticket/3890" target="_top">#3890</a> <a href="https://svn.boost.org/trac/boost/ticket/3890" target="_top">#3890</a>
</p> </p>
<h5> <h5>
<a name="boost_regex.background_information.history.h9"></a> <a name="boost_regex.background_information.history.h10"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_42"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_42">Boost 1.42</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_42"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_42">Boost 1.42</a>
</h5> </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@ -204,7 +226,7 @@
</li> </li>
</ul></div> </ul></div>
<h5> <h5>
<a name="boost_regex.background_information.history.h10"></a> <a name="boost_regex.background_information.history.h11"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_40"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_40">Boost 1.40</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_40"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_40">Boost 1.40</a>
</h5> </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
@ -212,7 +234,7 @@
branch resets and recursive regular expressions. branch resets and recursive regular expressions.
</li></ul></div> </li></ul></div>
<h5> <h5>
<a name="boost_regex.background_information.history.h11"></a> <a name="boost_regex.background_information.history.h12"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_38"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_38">Boost 1.38</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_38"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_38">Boost 1.38</a>
</h5> </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@ -239,7 +261,7 @@
</li> </li>
</ul></div> </ul></div>
<h5> <h5>
<a name="boost_regex.background_information.history.h12"></a> <a name="boost_regex.background_information.history.h13"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_34"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_34">Boost 1.34</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_34"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_34">Boost 1.34</a>
</h5> </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@ -261,7 +283,7 @@
</li> </li>
</ul></div> </ul></div>
<h5> <h5>
<a name="boost_regex.background_information.history.h13"></a> <a name="boost_regex.background_information.history.h14"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_33_1"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_33_1">Boost 1.33.1</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_33_1"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_33_1">Boost 1.33.1</a>
</h5> </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@ -330,7 +352,7 @@
</li> </li>
</ul></div> </ul></div>
<h5> <h5>
<a name="boost_regex.background_information.history.h14"></a> <a name="boost_regex.background_information.history.h15"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_33_0"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_33_0">Boost 1.33.0</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_33_0"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_33_0">Boost 1.33.0</a>
</h5> </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@ -384,14 +406,14 @@
</li> </li>
</ul></div> </ul></div>
<h5> <h5>
<a name="boost_regex.background_information.history.h15"></a> <a name="boost_regex.background_information.history.h16"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_32_1"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_32_1">Boost 1.32.1</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_32_1"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_32_1">Boost 1.32.1</a>
</h5> </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Fixed bug in partial matches of bounded repeats of '.'. Fixed bug in partial matches of bounded repeats of '.'.
</li></ul></div> </li></ul></div>
<h5> <h5>
<a name="boost_regex.background_information.history.h16"></a> <a name="boost_regex.background_information.history.h17"></a>
<span class="phrase"><a name="boost_regex.background_information.history.boost_1_31_0"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_31_0">Boost 1.31.0</a> <span class="phrase"><a name="boost_regex.background_information.history.boost_1_31_0"></a></span><a class="link" href="history.html#boost_regex.background_information.history.boost_1_31_0">Boost 1.31.0</a>
</h5> </h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">

View File

@ -1361,8 +1361,51 @@
from elsewhere in the pattern. from elsewhere in the pattern.
</li> </li>
</ul></div> </ul></div>
<h5> <h6>
<a name="boost_regex.syntax.perl_syntax.h42"></a> <a name="boost_regex.syntax.perl_syntax.h42"></a>
<span class="phrase"><a name="boost_regex.syntax.perl_syntax.backtracking_control_verbs"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.backtracking_control_verbs">Backtracking
Control Verbs</a>
</h6>
<p>
This library has partial support for Perl's backtracking control verbs, in
particular (*MARK) is not supported. There may also be detail differences
in behaviour between this library and Perl, not least because Perl's behaviour
is rather under-documented and often somewhat random in how it behaves in
practice. The verbs supported are:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="literal">(*PRUNE)</code> Has no effect unless backtracked onto, in
which case all the backtracking information prior to this point is discarded.
</li>
<li class="listitem">
<code class="literal">(*SKIP)</code> Behaves the same as <code class="literal">(*PRUNE)</code>
except that it is assumed that no match can possibly occur prior to the
current point in the string being searched. This can be used to optimize
searches by skipping over chunks of text that have already been determined
can not form a match.
</li>
<li class="listitem">
<code class="literal">(*THEN)</code> Has no effect unless backtracked onto, in
which case all subsequent alternatives in a group of alternations are
discarded.
</li>
<li class="listitem">
<code class="literal">(*COMMIT)</code> Has no effect unless backtracked onto, in
which case all subsequent matching/searching attempts are abandoned.
</li>
<li class="listitem">
<code class="literal">(*FAIL)</code> Causes the match to fail unconditionally at
this point, can be used to force the engine to backtrack.
</li>
<li class="listitem">
<code class="literal">(*ACCEPT)</code> Causes the pattern to be considered matched
at the current point. Any half-open sub-expressions are closed at the
current point.
</li>
</ul></div>
<h5>
<a name="boost_regex.syntax.perl_syntax.h43"></a>
<span class="phrase"><a name="boost_regex.syntax.perl_syntax.operator_precedence"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.operator_precedence">Operator <span class="phrase"><a name="boost_regex.syntax.perl_syntax.operator_precedence"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.operator_precedence">Operator
precedence</a> precedence</a>
</h5> </h5>
@ -1397,7 +1440,7 @@
</li> </li>
</ol></div> </ol></div>
<h4> <h4>
<a name="boost_regex.syntax.perl_syntax.h43"></a> <a name="boost_regex.syntax.perl_syntax.h44"></a>
<span class="phrase"><a name="boost_regex.syntax.perl_syntax.what_gets_matched"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.what_gets_matched">What <span class="phrase"><a name="boost_regex.syntax.perl_syntax.what_gets_matched"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.what_gets_matched">What
gets matched</a> gets matched</a>
</h4> </h4>
@ -1573,7 +1616,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h4> <h4>
<a name="boost_regex.syntax.perl_syntax.h44"></a> <a name="boost_regex.syntax.perl_syntax.h45"></a>
<span class="phrase"><a name="boost_regex.syntax.perl_syntax.variations"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.variations">Variations</a> <span class="phrase"><a name="boost_regex.syntax.perl_syntax.variations"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.variations">Variations</a>
</h4> </h4>
<p> <p>
@ -1582,7 +1625,7 @@
and <code class="literal">JScript</code></a> are all synonyms for <code class="literal">perl</code>. and <code class="literal">JScript</code></a> are all synonyms for <code class="literal">perl</code>.
</p> </p>
<h4> <h4>
<a name="boost_regex.syntax.perl_syntax.h45"></a> <a name="boost_regex.syntax.perl_syntax.h46"></a>
<span class="phrase"><a name="boost_regex.syntax.perl_syntax.options"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.options">Options</a> <span class="phrase"><a name="boost_regex.syntax.perl_syntax.options"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.options">Options</a>
</h4> </h4>
<p> <p>
@ -1594,7 +1637,7 @@
are to be applied. are to be applied.
</p> </p>
<h4> <h4>
<a name="boost_regex.syntax.perl_syntax.h46"></a> <a name="boost_regex.syntax.perl_syntax.h47"></a>
<span class="phrase"><a name="boost_regex.syntax.perl_syntax.pattern_modifiers"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.pattern_modifiers">Pattern <span class="phrase"><a name="boost_regex.syntax.perl_syntax.pattern_modifiers"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.pattern_modifiers">Pattern
Modifiers</a> Modifiers</a>
</h4> </h4>
@ -1606,7 +1649,7 @@
and <code class="literal">no_mod_s</code></a>. and <code class="literal">no_mod_s</code></a>.
</p> </p>
<h4> <h4>
<a name="boost_regex.syntax.perl_syntax.h47"></a> <a name="boost_regex.syntax.perl_syntax.h48"></a>
<span class="phrase"><a name="boost_regex.syntax.perl_syntax.references"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.references">References</a> <span class="phrase"><a name="boost_regex.syntax.perl_syntax.references"></a></span><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.references">References</a>
</h4> </h4>
<p> <p>

View File

@ -198,7 +198,7 @@
</p> </p>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: May 05, 2015 at 12:03:52 GMT</small></p></td> <td align="left"><p><small>Last revised: October 05, 2015 at 18:11:16 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@ -564,6 +564,23 @@ executes /no-pattern/.
* [^(?(DEFINE)never-exectuted-pattern)] Defines a block of code that is never executed and matches no characters: * [^(?(DEFINE)never-exectuted-pattern)] Defines a block of code that is never executed and matches no characters:
this is usually used to define one or more named sub-expressions which are referred to from elsewhere in the pattern. this is usually used to define one or more named sub-expressions which are referred to from elsewhere in the pattern.
[h5 Backtracking Control Verbs]
This library has partial support for Perl's backtracking control verbs, in particular (*MARK) is not supported.
There may also be detail differences in behaviour between this library and Perl, not least because Perl's behaviour
is rather under-documented and often somewhat random in how it behaves in practice. The verbs supported are:
* [^(*PRUNE)] Has no effect unless backtracked onto, in which case all the backtracking information prior to this
point is discarded.
* [^(*SKIP)] Behaves the same as [^(*PRUNE)] except that it is assumed that no match can possibly occur prior to
the current point in the string being searched. This can be used to optimize searches by skipping over chunks of text
that have already been determined can not form a match.
* [^(*THEN)] Has no effect unless backtracked onto, in which case all subsequent alternatives in a group of alternations
are discarded.
* [^(*COMMIT)] Has no effect unless backtracked onto, in which case all subsequent matching/searching attempts are abandoned.
* [^(*FAIL)] Causes the match to fail unconditionally at this point, can be used to force the engine to backtrack.
* [^(*ACCEPT)] Causes the pattern to be considered matched at the current point. Any half-open sub-expressions are closed at the current point.
[h4 Operator precedence] [h4 Operator precedence]
The order of precedence for of operators is as follows: The order of precedence for of operators is as follows: