(?:[A-Za-z0-9_\-,.+]+)? #### [A-Za-z0-9_\-,.+]* #### my $mm = qq("000.E+3","","","","QCA-086_2","-1","P","FALSE"); my @p = ( $mm =~ m[\G ("[A-Za-z0-9_\-,.+]*") (?: , | \z ) ]g ); print map {qq($_\n)} @p; 1;