You have \{.+?\}.
From your description, you don't want [] within {...} and you don't want {} within [ ... ], so your "in between" groups should reflect that:
/(\{[^\[\]]{}]+?\})|.../
I think there are ways to better extract stuff within matching pairs of parentheses, but in the long run, you'll have to look at a proper parser for your grammar.
In reply to Re: Regular expressions: Extracting certain text from a line
by Corion
in thread Regular expressions: Extracting certain text from a line
by Wcool
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |