if ( grep length( $_ ) == 2, /([A-Za-z]\1+)/g ) { say "match"; } else { say "no match"; } #### /([A-Za-z])\1(?:\1+(*SKIP)(*FAIL))?/ #### perl -e' use v5.14; for ( "aa", "bbb", "cccc", "deefffgggghhiiiii" ) { say s/([A-Za-z])\1(?:\1+(*SKIP)(*FAIL))?/[$&]/gr; } ' #### [aa] bbb cccc d[ee]fffgggg[hh]iiiii