Top Prev Next Up Down
Grouping and capturing
Support for grouping and capturing is limited to only two cases
- capturing and grouping parentheses (...)
- grouping only parentheses (?:...)
- named capture (?<name>...)
NOT SUPPORTED
- atomic grouping (?>...) NOT SUPPORTED
- conditional NOT SUPPORTED
the reason for the limitation is in the implementation itself, the
capturing is done in a very late state of the process.
Quantifiers
Two types of quantifiers are supported
- greedy quantifiers *, +, ?, {<num>{,<num>}} or {<num>{:<num>}}
- lazy quantifiers *?, +?, {<num>{,<num>}}? or {<num>{:<num>}}?
- possessive quantifiers *+, ++, ?+, {<num>,<num>}+ NOT SUPPORTED
(Note both {<num>,<num>}
and {<num>:<num>} means
the same the comma is only changed to a colon)
Examples of usage ExIota .
Alternation
Alternation is supported in capturing and grouping
and grouping only parentheses. By writing "^A(B|C)D$"c
you get result from "ABD" and "ACD" source strings.
Other issues
- Backtracking exists but in a very different form (The PatternPack / squ) , and not with the
use of possessive quantifiers.
- Example of odd capturing with parentheses when capturing is
repeated twice ExKappa