>>464 Perl5

for (<DATA>) {
 chomp;
 print "$_ → ", (/^(A((AB)?|(?1))B)+$/g ? 'true' : 'false'), "\n";
}
__DATA__

A
B
AB
ABB
AAB
AABB
ABAABBAAABBB
ABC
AABABB

※見易くするためにインデントを全角スペースに置換してあります

実行結果
~ $ perl 22_464_AB_rec_rex.pl
→ false
A → false
B → false
AB → true
ABB → false
AAB → false
AABB → true
ABAABBAAABBB → true
ABC → false
AABABB → false