#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; for my $s (qw( xxabyycdzz axxbmmmcyyd xxyy exxyy xxyyf xxgyy mmm mmmennn )) { say for '---', $s; say $2 while $s =~ /(?|^((.))\2(?!\2) |(?<=(.)(?!\1))(.)\2(?!\2))/gx; }