Expressão regular

Boa noite,

Estou com dificuldades em conseguir extrair de uma string um conjunto de substrings com um padrão de valores, ou seja o que queria era algo deste género:

String a = abc [AA] [A1] [A23] [A2A3] [2A] [QWER] abc [A9 ] [Abc] [_A] [A0]

Armazenar numa lista de string todos os valores, que comecem por [A depois contêm caracteres númericos apenas e por fim em ]

para a string a, teria a lista -->list resultado composta por:
resultado[0] = [A1]
resultado[1] = [A23]
resultado[2] = [A0]

ficava agradecido pela ajuda,
Cumprimentos
Vitor

Basicamente, acho que você teria de fazer algo como:

Pattern pat = Pattern.compile ("\\[A\\d+\\]");
Matcher mat = pat.matcher ("abc [AA] [A1] [A23] [A2A3] [2A] [QWER] abc [A9 ] [Abc] [_A] [A0] ");
List<String> lista = new ArrayList<String>();
while (mat.find()) {
    lista.add (mat.group());
}
String[] resultado = lista.toArray (new String[]);