c:\@Work\Perl>perl -wMstrict -le "use 5.010; ;; my $word = qr{ [^,]+ }xms; my $comma_between_2_words = qr{ $word \K , (?= $word) }xms; ;; for my $string (@ARGV) { print ''; printf 'question a: '; my $match = $string =~ $comma_between_2_words; print qq{'$string':}, $match ? '' : ' NO', ' match'; ;; printf 'question b: '; $match = $string =~ m{ , .* , }xms; print qq{'$string':}, $match ? '' : ' NO', ' match'; } " ",," ",x," "x,x" "," "x,y,z" question a: ',,': NO match question b: ',,': match question a: ',x,': NO match question b: ',x,': match question a: 'x,x': match question b: 'x,x': NO match question a: ',': NO match question b: ',': NO match question a: 'x,y,z': match question b: 'x,y,z': match