Przechwytywanie tekstu w nawiasach kwadratowych w PHP

Potrzebuję jakiegoś sposobu uchwycenia tekstu między nawiasami kwadratowymi. Na przykład następujący ciąg:

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

Można użyć do utworzenia następującej tablicy:

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

Mam następujące wyrażenie regularne,/\[.*?\]/ ale to tylko przechwytuje pierwszą instancję, więc:

Array ( [0] => [This] )

Jak mogę uzyskać wyjście, którego potrzebuję? Zauważ, że nawiasy kwadratowe NIGDY nie są zagnieżdżone, więc to nie jest problem.