in reply to Re^3: Recursive Regex
in thread Parsing using Regex and Lookahead

What about something like:

[section] top=Top Data middle=Mid Data bottom=Bottom Data [section] top=Top Data bottom=Bottom Data

Now you've got a built-in qualitative difference that makes the parsing easier.