Yes, the {}l RE modifier has the canonical form {a,b} where a and b are numbers and so that modifies the char before it to match from a to b times, e,g A{1,3}
matches one, two or three As. If you leave out the first number, zero is presumed. Hmm, perl 5.30 % perl -E 's ay(10) if "aaa"=~/a{,2}/;' Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/a{ <-- HERE ,2}/ at -e line 1. and % perldoc perlre says Quantifiers Quantifiers are used when a particular portion of a pattern needs to match a certain number (or numbers) of times. If there isn't a quantifier the number of times to match is exactly one. The following standard quantifiers are recognized: * Match 0 or more times + Match 1 or more times ? Match 1 or 0 times {n} Match exactly n times {n,} Match at least n times {n,m} Match at least n but not more than m times (If a non-escaped curly bracket occurs in a context other than one of the quantifiers listed above, where it does not form part of a backslashed sequence like "\x{...}", it is either a fatal syntax error, or treated as a regular character, generally with a deprecation warning raised. To escape it, you can precede it with a backslash ("\{") or enclose it within square brackets ("[{]"). This change will allow for future syntax extensions (like making the lower bound of a quantifier optional), and better error checking of quantifiers). On Mon, Jan 22, 2024 at 6:59 AM <k...@aspodata.se> wrote: > Jorge Almeida: > > Please help me to understand this: > > $ perl -e 'exit(10) if "aaa"=~/a{,2}/;' > > $ echo $? > > $ 10 > > In man perlre, under "Regular Expressions" it says: > > {,n} Match at most n times > > So /a{,2}/ matches "", "a", and "aa" and is ignorant about what > comes before and after (basically). That "aa" is followed by a > "a" isn't something the expression prohibits. If you want that > try /^a{,2}$/ instead. > > Regards, > /Karl Hammar > > > > -- > To unsubscribe, e-mail: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > > -- a Andy Bach, afb...@gmail.com 608 658-1890 cell 608 261-5738 wk