Support for placeholder start/end
Handle error even better

- sub parsers should never eat the terminator
- fix correctness for end of stream parsing