There's nothing to fix. It might help if you provide some markers
sorry, and thanks for your patience...
in your test patterns so you can see where each argument begins and ends, e.g., $ printf "(%d) {%s}\n" 1 ok - (1) {ok} -bash: printf: -: invalid number (0) {}
... and for your trick! bye