/("[^"]*?")/g #### /("(?:\\"|[^"])*?")/g #### my $mm=qq(\"000.E+3\",\"\",\"\",\"\",\"QCA-086_2\",\"-1\",\"P\",\"FALSE\",\"this \\\"is\\\" quoted\"); my @p = ($mm=~m/("(?:\\"|[^"])*?")/g); print $mm, "\n", map {qq($_\n)} @p; __OUTPUT__ "000.E+3","","","","QCA-086_2","-1","P","FALSE","this \"is\" quoted" "000.E+3" "" "" "" "QCA-086_2" "-1" "P" "FALSE" "this \"is\" quoted"