Hi, Dave Thomas wrote: > > ts <decoux / moulon.inra.fr> writes: > > > >>>>> "D" == Dave Thomas <Dave / thomases.com> writes: > > > > D> However... The point of my original post was not to say that there are > > D> no differences between Perl and Ruby regexps, but to say that the > > D> behavior of String.split was consistent with Perl's when given a > > D> pattern that matched a zero length string. That seemed to be Conrad's > > D> concern. > > > > Yes but perl and ruby don't have the same notion of zero-length match > > d'accord. That's true, but kind of orthogonal to the point that Conrad > raised. > > Perhaps we need a FAQ entry about zero length matches? Well, speaking for Conrad, he raised at least 3 points/concerns, so you are both somewhat correct. However, the important point to remember with respect to Hal's original question is that "greedy" is only relative to the initial pattern cursor, which will not be advanced when a zero-length match is possible--even in Perl (-: #!/usr/bin/env perl $x = "4.2, 3.1, 5.3"; while (scalar $x) { $x =~ m/,? */; # Show initial string, prematch, match, postmatch. printf "%15s => %3s %5s %15s\n", "($x)", "($`)", "($&)", "($')"; $x =~ s/^.//; } (4.2, 3.1, 5.3) => () () (4.2, 3.1, 5.3) (.2, 3.1, 5.3) => () () (.2, 3.1, 5.3) (2, 3.1, 5.3) => () () (2, 3.1, 5.3) (, 3.1, 5.3) => () (, ) (3.1, 5.3) ( 3.1, 5.3) => () ( ) (3.1, 5.3) (3.1, 5.3) => () () (3.1, 5.3) (.1, 5.3) => () () (.1, 5.3) (1, 5.3) => () () (1, 5.3) (, 5.3) => () (, ) (5.3) ( 5.3) => () ( ) (5.3) (5.3) => () () (5.3) (.3) => () () (.3) (3) => () () (3) -- Conrad Schneiker (This note is unofficial and subject to improvement without notice.)