Someone on DALnet's #perl channel is having a strange regex bug that no one on the channel has been able to reproduce. If anyone here can reproduce it, please post the version and platform you're using. Here's the code:
while ("this_is_broken_" =~ /(.*?)_/gs) { print "($1) "; }
On his machine (Debian Woody) running Perl 5.6.1, he gets "(this)" and nothing else. The -mre=debug output yields this startling message:
(it just matched "this") Match successful! Guessing start of match, REx `(.*?)_' against `is_broken_'... Not at start... Match rejected by optimizer
That's bad. Can anyone else reproduce this? The bug disappeared when /s was removed.

_____________________________________________________
Jeff[japhy]Pinyan: Perl, regex, and perl hacker.
s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;

Replies are listed 'Best First'.
Re: Is your Perl broken? Bug help needed.
by Corion (Patriarch) on Jan 10, 2002 at 00:42 UTC

    I guess I won the lottery. Update: darn ! Juerd beat me to it :)

    corion@brother:~$ perl -le 'while ("this_is_broken_" =~ /(.*?)_/gs) {_ +/gs) { print "($1) "; } ' (this) corion@brother:~$

    My system is Debian 2.2 (potato?), the Perl is perl 5.6.1, as compiled by me on that platform. No patches or other funky stuff were applied by me.

    corion@brother:~$ perl -V Summary of my perl5 (revision 5.0 version 6 subversion 1) configuratio +n: Platform: osname=linux, osvers=2.2.17, archname=i586-linux uname='linux brother 2.2.17 #3 fri feb 9 12:59:43 cet 2001 i586 un +known ' config_args='-de' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultipl +icity=undef useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler: cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LA +RGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fno-strict-aliasing -I/usr/local/include' ccversion='', gccversion='2.95.2 20000220 (Debian GNU/Linux)', gcc +osandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +2 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=8 alignbytes=4, usemymalloc=n, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lndbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil libc=/lib/libc-2.1.3.so, so=so, useshrplib=false, libperl=libperl. +a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynami +c' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under linux Compiled at Dec 29 2001 15:44:07 @INC: /usr/local/lib/perl5/5.6.1/i586-linux /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i586-linux /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl .

    Update 2: Under IndigoPerl v5.6.1 (build 626), the above code works as it should and prints the three words.

    perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web
Re: Is your Perl broken? Bug help needed.
by Juerd (Abbot) on Jan 10, 2002 at 00:33 UTC
    2;0 juerd@ouranos:~$ perl -l while ("this_is_broken_" =~ /(.*?)_/gs) { print "($1) "; } (this) 2;0 juerd@ouranos:~$ perl -l while ("this_is_broken_" =~ /(.*?)_/g) { print "($1) "; } (this) (is) (broken) 2;0 juerd@ouranos:~$ perl -v This is perl, v5.6.1 built for i386-linux =cut :)


    This is on Debian Sid, the current perl package (5.6.1-6

    2;0 juerd@ouranos:~$ perl -e'undef christmas' Segmentation fault 2;139 juerd@ouranos:~$

      <AOL>Metoo.</AOL>

      I also have a copy of perl5.7.2 homecompiled in /usr/local; it doesn't have the bug.

      Sorry I couldn't acatualy help; but at least I can confirm.

      I might take a better look sometime later. I'm downloading the package source now, in case I get time.

      Thanks,
      James Mastros,
      Just Another Perl Scribe

Re: Is your Perl broken? Bug help needed.
by BMaximus (Chaplain) on Jan 10, 2002 at 00:46 UTC
    I'm getting the same thing on my box.

    perl 5.6.1 - build from source not rpm - RedHat 7.1
    #!/usr/bin/perl while ("this_is_broken_" =~ /(.*?)_/gs) { print "($1) "; }

    Here's its debug output.
    Freeing REx: `,'
    Compiling REx `(.*?)_'
    size 10 first at 5
    1: OPEN1(3)
    3: MINMOD(4)
    4: STAR(6)
    5: SANY(0)
    6: CLOSE1(8)
    8: EXACT <_>(10)
    10: END(0)
    floating `_' at 0..2147483647 (checking floating) anchored(SBOL) implicit minlen 1
    Guessing start of match, REx `(.*?)_' against `this_is_broken_'...
    Found floating substr `_' at offset 4...
    Guessed: match at offset 0
    Matching REx `(.*?)_' against `this_is_broken_'
    Setting an EVAL scope, savestack=9
    0 <> <this_is_brok> | 1: OPEN1
    0 <> <this_is_brok> | 3: MINMOD
    0 <> <this_is_brok> | 4: STAR
    Setting an EVAL scope, savestack=9
    0 <> <this_is_brok> | 6: CLOSE1
    0 <> <this_is_brok> | 8: EXACT <_>
    failed...
    SANY can match 1 times out of 1...
    1 <t> <his_is_brok> | 6: CLOSE1
    1 <t> <his_is_brok> | 8: EXACT <_>
    failed...
    SANY can match 1 times out of 1...
    2 <th> <is_is_brok> | 6: CLOSE1
    2 <th> <is_is_brok> | 8: EXACT <_>
    failed...
    SANY can match 1 times out of 1...
    3 <thi> <s_is_brok> | 6: CLOSE1
    3 <thi> <s_is_brok> | 8: EXACT <_>
    failed...
    SANY can match 1 times out of 1...
    4 <this> <_is_brok> | 6: CLOSE1
    4 <this> <_is_brok> | 8: EXACT <_>
    5 <this_> <is_brok> | 10: END
    Match successful!
    Guessing start of match, REx `(.*?)_' against `is_broken_'...
    Not at start...
    Match rejected by optimizer
    Freeing REx: `(.*?)_'

    Outputs: (this)
    #!/usr/bin/perl while ("this_is_broken_" =~ /(.*?)_/g) { print "($1) "; }
    Outputs: (this) (is) (broken)

    BMaximus
Re: Is your Perl broken? Bug help needed.
by VSarkiss (Monsignor) on Jan 10, 2002 at 01:07 UTC

    I'm getting exactly the same results under HP-UX with 5.6.1, down to the RE debug output.     This is perl, v5.6.1 built for PA-RISC2.0Removing the /s fixes the problem as you noted.

    However, 5.005_02 under HP-UX doesn't exhibit the same problem:     This is perl, version 5.005_02 built for PA-RISC1.1Both versions were built from source tarballs, to my knowledge. If you'd like more info /msg me; I'm at a client site right now, but can respond as long as I'm here.

    HTH

Re: Is your Perl broken? Bug help needed.
by blakem (Monsignor) on Jan 10, 2002 at 01:11 UTC
    I can reproduce this on one of my machines... (Cobalt RaQ, RH 6.2, perl 5.6.1)
    % perl -le 'print "($1) " while "this_is_broken_" =~ /(.*?)_/gs' (this) % perl -mre=debug -le 'print "($1) "while "this_is_broken_" =~ /(.*?)_ +/gs' Freeing REx: `,' Compiling REx `(.*?)_' size 10 first at 5 1: OPEN1(3) 3: MINMOD(4) 4: STAR(6) 5: SANY(0) 6: CLOSE1(8) 8: EXACT <_>(10) 10: END(0) floating `_' at 0..2147483647 (checking floating) anchored(SBOL) impli +cit minlen 1 Guessing start of match, REx `(.*?)_' against `this_is_broken_'... Found floating substr `_' at offset 4... Guessed: match at offset 0 Matching REx `(.*?)_' against `this_is_broken_' Setting an EVAL scope, savestack=9 0 <> <this_is_brok> | 1: OPEN1 0 <> <this_is_brok> | 3: MINMOD 0 <> <this_is_brok> | 4: STAR Setting an EVAL scope, savestack=9 0 <> <this_is_brok> | 6: CLOSE1 0 <> <this_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 1 <t> <his_is_brok> | 6: CLOSE1 1 <t> <his_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 2 <th> <is_is_brok> | 6: CLOSE1 2 <th> <is_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 3 <thi> <s_is_brok> | 6: CLOSE1 3 <thi> <s_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 4 <this> <_is_brok> | 6: CLOSE1 4 <this> <_is_brok> | 8: EXACT <_> 5 <this_> <is_brok> | 10: END Match successful! (this) Guessing start of match, REx `(.*?)_' against `is_broken_'... Not at start... Match rejected by optimizer Freeing REx: `(.*?)_' % perl -V Summary of my perl5 (revision 5.0 version 6 subversion 1) configuratio +n: Platform: osname=linux, osvers=2.2.14c11, archname=i586-linux uname='linux cobalt.blakem.com 2.2.14c11 #2 wed jun 28 00:55:51 pd +t 2000 i586 unknown ' config_args='-de' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultipl +icity=undef useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler: cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LA +RGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fno-strict-aliasing -I/usr/local/include' ccversion='', gccversion='2.95.2 19991024 (release)', gccosandvers +='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +2 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=8 alignbytes=4, usemymalloc=n, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil libc=/lib/libc-2.1.3.so, so=so, useshrplib=false, libperl=libperl. +a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynami +c' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under linux Compiled at Oct 30 2001 03:49:28 %ENV: PERL5LIB="/web/httpd_perl/perllibs:/usr/local/perllibs" @INC: /web/httpd_perl/perllibs /usr/local/perllibs /usr/local/lib/perl5/5.6.1/i586-linux /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i586-linux /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl .

    -Blake

Re: Is your Perl broken? Bug help needed.
by mikfire (Deacon) on Jan 10, 2002 at 02:21 UTC
    My Solaris 8 build of perl5.6.1 is showing the broken behaviour.
    mikfire@borris) perl -V Summary of my perl5 (revision 5.0 version 6 subversion 1) configuratio +n: Platform: osname=solaris, osvers=2.8, archname=sun4-solaris uname='sunos borris 5.8 generic_108528-08 sun4u sparc sunw,sun-bla +de-100 ' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultipl +icity=undef useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler: cc='gcc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_L +ARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fno-strict-aliasing -I/usr/local/include' ccversion='', gccversion='2.95.2 19991024 (release)', gccosandvers +='solaris2.8' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +6 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=8 alignbytes=8, usemymalloc=y, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib ' libpth=/usr/local/lib /usr/lib /usr/ccs/lib libs=-lsocket -lnsl -ldl -lm -lc perllibs=-lsocket -lnsl -ldl -lm -lc libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -R /us +r/local/perl5.6/lib/5.6.1/sun4-solaris/CORE' cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under solaris Compiled at Jun 25 2001 08:45:32 @INC: /usr/local/perl5.6/lib/5.6.1/sun4-solaris /usr/local/perl5.6/lib/5.6.1 /usr/local/perl5.6/lib/site_perl/5.6.1/sun4-solaris /usr/local/perl5.6/lib/site_perl/5.6.1 /usr/local/perl5.6/lib/site_perl .
    mikfire
Re: Is your Perl broken? Bug help needed.
by boo_radley (Parson) on Jan 10, 2002 at 01:17 UTC
    I don't fathom the error, but ht(his)h... Happy hunting.

    the perl info

    C:\>perl -v This is perl, v5.6.1 built for MSWin32-x86-multi-threa (with 1 registered patch, see perl -V for more detail)

    the program

    while ("this_is_broken_" =~ /(.*?)_/gs) { print "($1) "; }

    the output

      Hey, I'm the poor sod using Woody that first got bit by this problem.

      My results are, in a nutshell, that all of my Perl 5.6.1's have this error (3 different boxes) but my Perl 5.005 does not. And it is an error, correct? There is no way this could be anything but a bug?

      I don't have Perl 5.6.0 installed anywhere. If anybody does, I'm curious to know if you have the error.

        Perl 5.6.0 on RH 7.1 doesn't display the error... i.e.
        % perl -le 'print "($1) " while "this_is_broken_" =~ /(.*?)_/gs' (this) (is) (broken) % perl -v This is perl, v5.6.0 built for i386-linux

        -Blake

Re: Is your Perl broken? Bug help needed.
by RedDog (Pilgrim) on Jan 10, 2002 at 01:46 UTC
    Hmm...it worked for me..
    $ perl reg.pl (This) (is) (broken)$ $perl -v This is perl, v5.6.0 built for 9000/777-hpux Copyright 1987-2000, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5.0 source +kit. Complete documentation for Perl, including FAQ lists, should be found +on this system using `man perl' or `perldoc perl'. If you have access to + the Internet, point your browser at http://www.perl.com/, the Perl Home Pa +ge.

    ...We will have peace, when you and all your works have perished -- and the works of your dark master to whom you would deliver us. You are a liar, Saruman, and a corrupter of men's hearts. -- Theoden in The Two Towers --
Re: Is your Perl broken? Bug help needed.
by mr_mischief (Monsignor) on Jan 10, 2002 at 08:27 UTC
    I get this problem behavior under 5.6.1 compiled from source on RH Linux, but not unfer 5.6.0 on the same box from RPM.
Re: Is your Perl broken? Bug help needed.
by busunsl (Vicar) on Jan 10, 2002 at 12:20 UTC
    Perl 5.6.1 on Sun/Solaris does have the error.

    Perl 5.6.1 on winnt (Activestate 626) and
    Perl 5.6.0 on Intel/Linux do not have it.

Re: Is your Perl broken? Bug help needed.
by Anonymous Monk on Jan 10, 2002 at 03:20 UTC
    Here's the latest...

    I downgraded one of my servers to run 5.6.0, and the problem goes away. Perhaps this is drastic, but to avoid problems I'm going to downgrade all of my servers to 5.6.0 until the problem is officially addressed in a later release.

      5.6.0 has far more bugs. And you can get around the bug by using \C instead of /./s (so long as you aren't working with Unicode). And if the bug has been fixed in bleadperl, it'll be fixed for 5.6.2.

      Update: Hmm. Well then, try (?:.|\n) or [\000-\377]. Maybe?

      _____________________________________________________
      Jeff[japhy]Pinyan: Perl, regex, and perl hacker.
      s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;

        While I wouldn't advocate moving back to 5.6.0, I don't think \C avoids this particular bug...
        % perl -le 'print "($1) " while "this_is_broken_" =~ /(\C*?)_/sg' (this) % perl -le 'print "($1) " while "this_is_broken_" =~ /(\C*?)_/g' (this) % perl -le 'print "($1) " while "this_is_broken_" =~ /(.*?)_/sg' (this) % perl -mre=debug -le 'print "($1) " while "this_is_broken_" =~ /(\C*? +)_/sg' Freeing REx: `,' Compiling REx `(\C*?)_' size 10 first at 5 1: OPEN1(3) 3: MINMOD(4) 4: STAR(6) 5: SANY(0) 6: CLOSE1(8) 8: EXACT <_>(10) 10: END(0) floating `_' at 0..2147483647 (checking floating) anchored(SBOL) impli +cit minlen 1 Guessing start of match, REx `(\C*?)_' against `this_is_broken_'... Found floating substr `_' at offset 4... Guessed: match at offset 0 Matching REx `(\C*?)_' against `this_is_broken_' Setting an EVAL scope, savestack=9 0 <> <this_is_brok> | 1: OPEN1 0 <> <this_is_brok> | 3: MINMOD 0 <> <this_is_brok> | 4: STAR Setting an EVAL scope, savestack=9 0 <> <this_is_brok> | 6: CLOSE1 0 <> <this_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 1 <t> <his_is_brok> | 6: CLOSE1 1 <t> <his_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 2 <th> <is_is_brok> | 6: CLOSE1 2 <th> <is_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 3 <thi> <s_is_brok> | 6: CLOSE1 3 <thi> <s_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 4 <this> <_is_brok> | 6: CLOSE1 4 <this> <_is_brok> | 8: EXACT <_> 5 <this_> <is_brok> | 10: END Match successful! (this) Guessing start of match, REx `(\C*?)_' against `is_broken_'... Not at start... Match rejected by optimizer Freeing REx: `(\C*?)_'
        Let me know if you'd like more debugging info (its from the Cobalt setup I mentioned earlier)

        UPDATE:

        However, using /.{0,}?/s instead of /.*?/s seems to fix it for me...

        % perl -le 'print "($1) " while "this_is_broken_" =~ /(.*?)_/sg' (this) % perl -le 'print "($1) " while "this_is_broken_" =~ /(.{0,}?)_/sg' (this) (is) (broken)
        UPDATE 2

        Both of japhy's updated suggestions seem to work for me... with and w/o the /s modifier...

        (Broken Base Case...) % perl -le 'print "($1) " while "this_is_broken_" =~ /(.*?)_/sg' (this) % perl -le 'print "($1) " while "this_is_broken_" =~ /([\000-\377]*?)_ +/sg' (this) (is) (broken) % perl -le 'print "($1) " while "this_is_broken_" =~ /([\000-\377]*?)_ +/g' (this) (is) (broken) % perl -le 'print "($1) " while "this_is_broken_" =~ /((?:.|\n)*?)_/g' (this) (is) (broken) % perl -le 'print "($1) " while "this_is_broken_" =~ /((?:.|\n)*?)_/sg +' (this) (is) (broken)

        -Blake

Re: Is your Perl broken? Bug help needed.
by BazB (Priest) on Jan 10, 2002 at 17:47 UTC

    With

    perl -le 'while ("this_is_broken_" =~ /(.*?)_/gs){print "($1) ";}'
    I get
    (this)
    as output.

    Perl v5.6.1 built for i586-linux (5.6.1 from source on Debian Potato, installed as /usr/local/bin/perl)

    Looks like I'm seeing the same problem.

    Update: After looking at count0's post further down, I thought I'd check Perl 5.005_03 (for i386-linux installed as /usr/bin/perl - Debian Potato 2.2r4 base packages).

    With the same input described above I get

    (this) (is) (broken)
    as output with Perl 5.005_03 on the same machine - it works, which conflicts with count0's results.

Re: Is your Perl broken? Bug help needed.
by davis (Vicar) on Jan 10, 2002 at 20:08 UTC
    Self compiled perl 5.6.1 on HP-UX 11.00 has the problem
    
    This is perl, v5.6.1 built for PA-RISC2.0
    
    
    davis
Re: Is your Perl broken? Bug help needed.
by count0 (Friar) on Jan 10, 2002 at 20:51 UTC
    Since everyone has already tested 5.6.x (and strangly 5.6.0 seems ok?).. here's the lowdown on a 5.005_03 machine: this problem (prints only '(this)') occurs on Debian 2.2 (potato), with perl 5.005_03. Perl and the base modules are all from .deb packages.

    Let me know if you want some -V output or anything else.
Re: Is your Perl broken? Bug help needed.
by thraxil (Prior) on Jan 10, 2002 at 21:34 UTC

    broken on 5.6.1, mandrake 8.1

    928/zoid/0$ perl -le 'print "($1) " while "this_is_broken_" =~ /(.*?)_ +/gs' (this) 929/zoid/0$ perl -mre=debug -le 'print "($1) " while "this_is_broken_" + =~ /(.*?)_/gs' Freeing REx: `,' Compiling REx `(.*?)_' size 10 first at 5 1: OPEN1(3) 3: MINMOD(4) 4: STAR(6) 5: SANY(0) 6: CLOSE1(8) 8: EXACT <_>(10) 10: END(0) floating `_' at 0..2147483647 (checking floating) anchored(SBOL) impli +cit minlen 1 Guessing start of match, REx `(.*?)_' against `this_is_broken_'... Found floating substr `_' at offset 4... Guessed: match at offset 0 Matching REx `(.*?)_' against `this_is_broken_' Setting an EVAL scope, savestack=9 0 <> <this_is_brok> | 1: OPEN1 0 <> <this_is_brok> | 3: MINMOD 0 <> <this_is_brok> | 4: STAR Setting an EVAL scope, savestack=9 0 <> <this_is_brok> | 6: CLOSE1 0 <> <this_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 1 <t> <his_is_brok> | 6: CLOSE1 1 <t> <his_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 2 <th> <is_is_brok> | 6: CLOSE1 2 <th> <is_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 3 <thi> <s_is_brok> | 6: CLOSE1 3 <thi> <s_is_brok> | 8: EXACT <_> failed... SANY can match 1 times out of 1... 4 <this> <_is_brok> | 6: CLOSE1 4 <this> <_is_brok> | 8: EXACT <_> 5 <this_> <is_brok> | 10: END Match successful! (this) Guessing start of match, REx `(.*?)_' against `is_broken_'... Not at start... Match rejected by optimizer Freeing REx: `(.*?)_' 930/zoid/0$ perl -v This is perl, v5.6.1 built for i386-linux

    fine on 5.004_04 on Solaris 5.5.1.

    anders pearson