Add an "recipe" algorithm:

- collect locations of substrings
- calculate new string size and allocate
- blit from source and replacement strings