Rework to use a more general `satisfy`, adding `not-char`, `none-of`, and `parse-string`.
Add sep-by.