use strict; use warnings; my $string = q{abc de fgh ijkl}; my $rxComb = qr {(?x) (?: ([a-z]+) \s+ (?=([a-z]+)) ) }; while ( $string =~ m{$rxComb}g ) { print qq{$1 $2\n}; } #### abc de de fgh fgh ijkl