On Thu, 4 Jul 2002, Ashley Winters wrote:
: On Thursday 04 July 2002 10:47 am, Larry Wall wrote:
: > On Thu, 4 Jul 2002, Ashley Winters wrote:
: > So I'd guess that we just don't talk about :-1, but rather say that
: >
: >     <*$min..$max>
: >
: > is naturally greedy, and as with any quantifier you write
: >
: >     <*$min..$max>?
: >
: > to get minimal matching.
: 
: I would expect /a<*1..2>?/ to mean /[a<*1..2>]?/ just looking at it. How can ? 
: ever mean non-greedy unless it follows a metachar <[*+?]>?

Well, that's exactly how {1,2}? works in Perl 5, and {1,2} isn't a "metacharacter".
It is, however, a "quantifier".

In general, it makes no sense to put the quantifier ? after a zero-width
assertion.  It'd mean "Check this assertion but I don't care if it matches."

: > But sigh, it would fix so many novice bugs to make minimal matching
: > the default...
: 
: I agree wholeheartedly. *sigh*

I wasn't seriously proposing it, of course, since it would instead
inspire a whole new set of novice bugs:

    Gee, how come this:

        my ($num) = /(\d*)/

    always sets $num to zero?

We'll stick with greedy matching by default, and take our current
set of lumps...

Larry

Reply via email to