Could be a problem though if "}" is allowed within the place-holder, e.g.:
Some text {{param:123^param:example {text} in brackets^param:234}} for example
All depends on the functional requirements and how flexible/portable you want this code to be. But if it is a given that "}" cannot be part of the data within the double-bracketed patterns, then your solution would, indeed, probably be better.