$s = 'aaaabccbaxxxcbddadcc';; ++$h{ $1 } while $s =~ m[(?=([abcd]{3})).]g;; pp \%h;; { aaa => 2, aab => 1, abc => 1, adc => 1, bcc => 1, bdd => 1, cba => 1, cbd => 1, ccb => 1, dad => 1, dcc => 1, dda => 1, }