Captura de texto entre colchetes em PHP

Eu preciso de alguma maneira de capturar o texto entre colchetes. Então, por exemplo, a seguinte string:

[This] is a [test] string, [eat] my [shorts].

Poderia ser usado para criar a seguinte matriz:

<code>Array ( 
     [0] => [This] 
     [1] => [test] 
     [2] => [eat] 
     [3] => [shorts] 
)
</code>

Eu tenho o seguinte regex,/\[.*?\]/ mas apenas captura a primeira instância, então:

<code>Array ( [0] => [This] )
</code>

Como posso obter a saída de que preciso? Note que os colchetes NUNCA são aninhados, então isso não é uma preocupação.

questionAnswers(1)

yourAnswerToTheQuestion