##
$ perl -e'my $re = qr/((.)\2+)/; $_="aabccccdddeffff"; while (m/$re/g) { printf "\"%s\" x %d\n", $2, length($1) }'
"a" x 2
"c" x 4
"d" x 3
"f" x 4
$
##
##
use re 'eval';
my $re = qr/((.)\2+)/;
my ($maxlen, $maxchr, $maxloc);
$_="aabccccdddeffff";
1 while m/$re(?{
$maxlen = length($^N),
$maxchr = substr($^N,0,1),
$maxloc = pos() - $maxlen
if length($^N) > $maxlen;
})/g;
print $maxchr, ' x ', $maxlen, ' at ', $maxloc, $/;
__END__
c x 4 at 3