in reply to Parse::RecDescent and nesting

I don't see anything in your grammar that would permit such nesting. I think you can allow it simply by defining tag as stag part etag.

Hugo