>perl -wMstrict -le "my $orf = 'AAAAXXAAAAAXXAAAAAXPXAAA'; my @digested0 = split /(?<=[KR](?!P))/, $orf; print for @digested0; " AAAAXXAAAAAXXAAAAAXPXAAA #### >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