OSSP var o problem: ${foo:s/^(.+)$/<\1>/} -> fails with malformatted search & replace error because it tries to parse the $ as a variable. ${foo:s/^(.+)\$/<\1>/} -> does not substitute because it leaves the \$ in the regex and this no longer matches the end (instead it matches a dollar) o "problem"!?: ${unknown:-foo} fails on force_expand and results in no expansion (kept as is) if not forced_expand. It only does the expected if the callback returns empty strings for undefined variables. This is certainly intended this way, but has to be documented better? o document exception handling