in reply to regexing my brain...

Something else to keep in mind is that .* is greedy, so if you have:
<!--BeginContent-->Content 1 Here<!--EndContent--> <!--BeginContent-->Content 2 Here<!--EndContent-->
it will match all of it, not just the first one. Especially when you're doing multi-line matching, that can bite you sometimes.