... my @s = split / (?<=[KR]) # split on K,R (?!P) # but not if in front of a P /x, 'APADPKGSTIDRPDAARTLTVHKCEQTDTRGVKEGTRNEDPQAECKPVSDVEFTITKLNVD'; print join "\n", @s; ...