before

(A[0-9])|(B[0-9]b)

これをor(|)を使わないでまとめて記述してA1B2bのような文字列にマッチするようにできるでしょうか?

after

([AB][0-9]b?)

のように記述すると、beforeではマッチしないA1bのような文字列にマッチしてしまいます。
[0-9]がもっと複雑な正規表現の場合にafterのような感じでまとめて書けるなら記述も処理も効率的になるかと思い、質問させていただきました。)