#! perl use strict; use warnings; use List::MoreUtils 'uniq'; my $string = '0a0a0a0a0b0b0a0a0c0c0c0c0c0c0c0c' . '1f1f2b2b2b2b3e3e7b7b7b7b7b7b7b7b' . '8f8f8f8f8f8f8f8f6c6c4b4b4b4b3f3f' . '9d9d0f0f0f0f0f0f0f0f3a3a2e2e2e2e'; my @seqs = $string =~ /(([0-9a-fA-F]{2})\2)/g; @seqs = uniq grep { length == 4 } @seqs; for my $seq (@seqs) { my $matches = () = $string =~ /$seq/g; printf "%s: %d\n", $seq, $matches; } #### 17:30 >perl 914_SoPW.pl 0a0a: 3 0b0b: 1 0c0c: 4 1f1f: 1 2b2b: 2 3e3e: 1 7b7b: 4 8f8f: 4 6c6c: 1 4b4b: 2 3f3f: 1 9d9d: 1 0f0f: 4 3a3a: 1 2e2e: 2 17:30 > #### 0a0axxx0a0a0yyyy ^^^^ ^^^^