much better peg parser string handling