>perl -e "my $x = qq['foo',123,'bar\\'cuz', 'comma,comma',,'void']; map { print qq[<$_;\n]; } $x=~m/((?:'[^']*'|[^'\s,]+|))(?:[$|,\s]|$)/g;" <'foo'; <123; <'cuz'; <; <'comma,comma'; <; <'void'; <;