my $s1 = "Aabcddee";
my $s2 = "Aabcddde";
my $s3 = "aaA!!!ba";
my $p = qr/^(?:([A-Za-z])(?:(?!\1)|\1(?!\1)))+$/;
$s1 .= ($s1 =~ m/$p/) ? " matches" : " does not match";
$s2 .= ($s2 =~ m/$p/) ? " matches" : " does not match";
$s3 .= ($s3 =~ m/$p/) ? " matches" : " does not match";
printf "%s\n%s\n%s\n", $s1, $s2, $s3;
bXkgJHMxID0gIkFhYmNkZGVlIjsKbXkgJHMyID0gIkFhYmNkZGRlIjsKbXkgJHMzID0gImFhQSEhIWJhIjsKCm15ICRwID0gcXIvXig/OihbQS1aYS16XSkoPzooPyFcMSl8XDEoPyFcMSkpKSskLzsKCiRzMSAuPSAoJHMxID1+IG0vJHAvKSA/ICIgbWF0Y2hlcyIgOiAiIGRvZXMgbm90IG1hdGNoIjsKJHMyIC49ICgkczIgPX4gbS8kcC8pID8gIiBtYXRjaGVzIiA6ICIgZG9lcyBub3QgbWF0Y2giOwokczMgLj0gKCRzMyA9fiBtLyRwLykgPyAiIG1hdGNoZXMiIDogIiBkb2VzIG5vdCBtYXRjaCI7CgpwcmludGYgIiVzXG4lc1xuJXNcbiIsICRzMSwgJHMyLCAkczM7