>perl -wMstrict -le "my $a = 'AAAAXRXAAAAAXKXAAAAAXRPXAAA'; my $cut = qr{ [KR] (?!P) }xms; my $digest = qr{ .*? $cut | (?<= $cut) .* \z }xms; my @digested = $a =~ m{ $digest }xmsg; print qq{'$_'} for @digested; $a = 'AAAXXXPPPAAAXXXAAAPPPAAA'; @digested = $a =~ m{ $digest }xmsg; print '@digested empty' unless @digested; " 'AAAAXR' 'XAAAAAXK' 'XAAAAAXRPXAAA' @digested empty