I think variables on the replace end would be straight forward.
On the find end, there are probably multiple ways to do things. Certainly evaluating it on each image and could make it a pretty powerful feature. (For example, say I decided I wanted to replace {lens} with {lens35} in each image. Evaluating on a per-image basis could enable this, and could be a big help for making changes to large quantities of images.)
However a feature like this is implemented, it would probably be good to have some kind of on/off function for variable evaluation, in case someone doesn't want variable evaluation.