in reply to Re^7: Perlre interpretation required (remember kids: test all code..)
in thread Perlre interpretation required

I guess I must be using it wrong, or the two routines aren't meant to acheive the same thing. As-is, yours does find and match on the quoted sections and handled the embedded quotes ok -- although it does leave the leading and trailing quotes in place -- but it also matches on the unquoted sections?

I get the impression that we are both acheiving our goals adequately, they are just different goals:)

Testcode

#! perl -slw use strict; require 5.008; my $re_quoted = qr[ (["']) #'" (?{ local $q = $^N }) ( (??{ "(?x: [^$q] | (?: (?<!$q)(?: (?: $q ){2} )+ ) | (?: \\$q ) )+" }) ) (?{ $quoted = $^N }) (??{ "$q" }) ]x; my $re_quoted2 = qr[\G ( ' (?: \\ . | '' | [^'] ) + ' | " (?: \\ . | "" | [^"] ) + " | (?: \\ . | [^'"] ) + )]x; while( <DATA> ){ chomp; our $quoted; print; print "\t<$1>" while m[$re_quoted2]g; print ''; } __DATA__ unquoted stuff "quoted stuff" unquoted stuff unquoted stuff 'quoted stuff' unquoted stuff unquoted stuff "quoted stuff with embedded 'alternate' quotes" unquote +d stuff unquoted stuff 'quoted stuff with embedded "alternate" quotes' unquote +d stuff unquoted stuff "quoted stuff with embedded ""like"" quotes" unquoted s +tuff unquoted stuff 'quoted stuff with embedded ''like'' quotes' unquoted s +tuff unquoted stuff "quoted stuff with embedded """"like"""" quotes" unquot +ed stuff unquoted stuff 'quoted stuff with embedded ''''like'''' quotes' unquot +ed stuff unquoted stuff "quoted 'stuff' with escaped \"like\" quotes" unquoted +stuff unquoted stuff 'quoted 'stuff' with escaped \'like\' quotes' unquoted +stuff unquoted stuff "quoted stuff with embedded ""like"" quotes and escaped + \"like\" quotes" unquoted stuff unquoted stuff 'quoted stuff with embedded ''like'' quotes and escaped + \'like\' quotes' unquoted stuff

Results

unquoted stuff "quoted stuff" unquoted stuff <unquoted stuff > <"quoted stuff"> < unquoted stuff> unquoted stuff 'quoted stuff' unquoted stuff <unquoted stuff > <'quoted stuff'> < unquoted stuff> unquoted stuff "quoted stuff with embedded 'alternate' quotes" unquote +d stuff <unquoted stuff > <"quoted stuff with embedded 'alternate' quotes"> < unquoted stuff> unquoted stuff 'quoted stuff with embedded "alternate" quotes' unquote +d stuff <unquoted stuff > <'quoted stuff with embedded "alternate" quotes'> < unquoted stuff> unquoted stuff "quoted stuff with embedded ""like"" quotes" unquoted s +tuff <unquoted stuff > <"quoted stuff with embedded ""like"" quotes"> < unquoted stuff> unquoted stuff 'quoted stuff with embedded ''like'' quotes' unquoted s +tuff <unquoted stuff > <'quoted stuff with embedded ''like'' quotes'> < unquoted stuff> unquoted stuff "quoted stuff with embedded """"like"""" quotes" unquot +ed stuff <unquoted stuff > <"quoted stuff with embedded """"like"""" quotes"> < unquoted stuff> unquoted stuff 'quoted stuff with embedded ''''like'''' quotes' unquot +ed stuff <unquoted stuff > <'quoted stuff with embedded ''''like'''' quotes'> < unquoted stuff> unquoted stuff "quoted 'stuff' with escaped \"like\" quotes" unquoted +stuff <unquoted stuff > <"quoted 'stuff' with escaped \"like\" quotes"> < unquoted stuff> unquoted stuff 'quoted 'stuff' with escaped \'like\' quotes' unquoted +stuff <unquoted stuff > <'quoted '> <stuff> <' with escaped \'like\' quotes'> < unquoted stuff> unquoted stuff "quoted stuff with embedded ""like"" quotes and escaped + \"like\" quotes" unquoted stuff <unquoted stuff > <"quoted stuff with embedded ""like"" quotes and escaped \"lik +e\" quotes"> < unquoted stuff> unquoted stuff 'quoted stuff with embedded ''like'' quotes and escaped + \'like\' quotes' unquoted stuff <unquoted stuff > <'quoted stuff with embedded ''like'' quotes and escaped \'lik +e\' quotes'> < unquoted stuff>

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller

Replies are listed 'Best First'.
Re^9: Perlre interpretation required (my goals)
by Aristotle (Chancellor) on May 04, 2003 at 15:35 UTC
    Ah, yes. Didn't look that close. Mine matches all the pieces of a string that "belong together". The surrounding quotes are left intact because the inner escaped sequences are, too, so you need to know what kind of string you got to unescape the inner sequences. The resulting s/// cleanup regex looks very similar to the finder regex I'm using.

    Makeshifts last the longest.