http://www.perlmonks.org?node_id=161026


in reply to regexp /gs oddity or bug

Hi,
I ran your code with a use re "debug"; at the beginning and here is what I got:

Compiling REx `(.*? )' size 10 first at 5 1: OPEN1(3) 3: MINMOD(4) 4: STAR(6) 5: SANY(0) 6: EXACT < >(8) 8: CLOSE1(10) 10: END(0) floating ` ' at 0..2147483647 (checking floating) anchored(SBOL) impli +cit minlen 1 Guessing start of match, REx `(.*? )' against `is this odd or not?'... Found floating substr ` ' at offset 2... Guessed: match at offset 0 Matching REx `(.*? )' against `is this odd or not?' Setting an EVAL scope, savestack=6 0 <> <is this odd > | 1: OPEN1 0 <> <is this odd > | 3: MINMOD 0 <> <is this odd > | 4: STAR Setting an EVAL scope, savestack=6 SANY can match 2 times out of 2... 2 <is> < this odd > | 6: EXACT < > 3 <is > <this odd > | 8: CLOSE1 3 <is > <this odd > | 10: END Match successful! Guessing start of match, REx `(.*? )' against `this odd or not?'... Not at start... Match rejected by optimizer Freeing REx: `(.*? )'

Looks like it actualy find other matches, but they where refused by the optimizer. The hell if I know why.

By the way, I'm using v5.6.1 on a Debian woody system.

Cheers
Leo TheHobbit