Fix coalesc fallback detection

Bugs fixed:
1. If sprintf(x) populates the field with a value containing a '%' character, the 'x.index("%").nil?' check of find_index assumes that it has an unpopulated "%{asdf}" sprintf resulted and skips the value.
Example:
If the "field" value was "100%", then 'coalesce => [ "field", "%{field}", "default" ]' would result in the value of "field" being "default", rather than "100%".

2. The "/%\{[^}]\}/" regex is incorrect, it should be "/%\{[^}]+\}/" (note the "[^}]+"). It would match "%{a}", but not "%{aa}". Could optionally be "[^}]*", but I do not know if "%{}" is an acceptable value.