rajaman: Further to this point in kcott's post:
[kcott]: It would also help if you supplied a range of much shorter input samples, along with your expected output for these. Consider edge cases: no text before the first bracket; no text after the last bracket; unbalanced brackets in various places; and so on.
The article
How to ask better questions using Test::More and sample data is a very useful elaboration on this approach.
Short, Self-Contained, Correct Example is a good read also.
Give a man a fish: <%-{-{-{-<