fix(expressions): correct lexer behavior for operators not separated by a whitespace

So, instead of opening one giant PR for all the changes I had to do in order to support pratt expressions in the the `{foreach}` statement, I'm going to open several smaller PRs that are, hopefully, easier to review.

This one corrects how the lexer behaves for expressions like `d[ppName]|fnSorter` - previously it would recognize `]|` as one operator which is obviously wrong.