Help for this page
if ( /(BA[ABC]{2})|(CA[CD]{2})|(DA[SC]{2})/ ) my $first = ... : defined( $2 ) ? 2 : 3 );
local our $first; ... | CA[CD]{2} (??{ $first = 2; }) | DA[SC]{2} (??{ $first = 3; }) /x;