I'm pretty frustrated with the `split`/`join` thing. The alternative is to either write a simple replaceAll function or use some ugly regexp escaping function so that we can `replace(new RegExp(escapedStartRegexp, 'g'), startSymbol)`