(?<=\[).+?(?=\])
будет захватывать контент без скобок
(? & lt; = [) - положительный lookbehind для [
. *? - нежелательное соответствие для содержимого
(? =]) - положительный результат для]
EDIT: для вложенных скобок должно выполняться следующее регулярное выражение:
(\[(?:\[??[^\[]*?\]))