summaryrefslogtreecommitdiffstats
path: root/doc/re_syntax.n
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2015-09-24 13:48:37 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2015-09-24 13:48:37 (GMT)
commit6f3388528ef453d29fbddba3f5a054d2f5268207 (patch)
tree51b638cc0fe1a9d9ca7a4590d9eb8d38b6f79307 /doc/re_syntax.n
parentbf1e2150cc603698bc042d0552c49930e86b2ca9 (diff)
parentf9465250b939d54021e85ba03eaf63f31b4b3037 (diff)
downloadtcl-6f3388528ef453d29fbddba3f5a054d2f5268207.zip
tcl-6f3388528ef453d29fbddba3f5a054d2f5268207.tar.gz
tcl-6f3388528ef453d29fbddba3f5a054d2f5268207.tar.bz2
merge trunk
Diffstat (limited to 'doc/re_syntax.n')
-rw-r--r--doc/re_syntax.n26
1 files changed, 25 insertions, 1 deletions
diff --git a/doc/re_syntax.n b/doc/re_syntax.n
index 46a180d..7988071 100644
--- a/doc/re_syntax.n
+++ b/doc/re_syntax.n
@@ -683,9 +683,33 @@ earlier in the RE taking priority over ones starting later. Note that
outer subexpressions thus take priority over their component
subexpressions.
.PP
-Note that the quantifiers \fB{1,1}\fR and \fB{1,1}?\fR can be used to
+The quantifiers \fB{1,1}\fR and \fB{1,1}?\fR can be used to
force longest and shortest preference, respectively, on a
subexpression or a whole RE.
+.RS
+.PP
+\fBNOTE:\fR This means that you can usually make a RE be non-greedy overall by
+putting \fB{1,1}?\fR after one of the first non-constraint atoms or
+parenthesized sub-expressions in it. \fIIt pays to experiment\fR with the
+placing of this non-greediness override on a suitable range of input texts
+when you are writing a RE if you are using this level of complexity.
+.PP
+For example, this regular expression is non-greedy, and will match the
+shortest substring possible given that
+.QW \fBabc\fR
+will be matched as early as possible (the quantifier does not change that):
+.PP
+.CS
+ab{1,1}?c.*x.*cba
+.CE
+.PP
+The atom
+.QW \fBa\fR
+has no greediness preference, we explicitly give one for
+.QW \fBb\fR ,
+and the remaining quantifiers are overridden to be non-greedy by the preceding
+non-greedy quantifier.
+.RE
.PP
Match lengths are measured in characters, not collating elements. An
empty string is considered longer than no match at all. For example,