With zsh:
setopt extendedglob # best in ~/.zshrc
mv A/^(file|directory)(|2)(D) B/
(the (D) to include dot (hidden) files).
With bash:
shopt -s extglob dotglob failglob
mv A/!(@(file|directory)?(2)) B/
With ksh93
(FIGNORE='@(.|..|@(file|directory)?(2))'; mv A/* B)