c:\@Work\Perl\monks>perl -wMstrict -le "use 5.010; ;; use Data::Dump qw(dd); ;; my $s = '\"word1\",word2,\"word3,word4\"'; ;; my @ra = $s =~ m{ (?| \"([^^\x22]*)\" | ([^,]+) ) (?:,|$) }xmsg; dd \@ra; " ["word1", "word2", "word3,word4"]