ちょっと簡単に書いてみた。>>158は黙ってろ。

sub Callback($)
{
print @_,"\n";
}


$str='AAABBBCCCAAACCCBBBCCCAAA';
$func = \&Callback;
while($str=~//gc) {
if ($str=~/AAA/gc) {
&$func($&);
}
if ($str=~/BBB/gc) {
&$func($&);
}
if ($str=~/CCC/gc) {
&$func($&);
}
}