while ($line =~ m/(?|"([^"\\]*(?:\\.[^"\\]*)*)",?|([^,]+),?|,)/g) { print $1 // q(), "\n"; }