I didn't write a further explanation because I thought the Iterator logic is straightforward. ;)

Checking only for a character between caret and end of line does not work for nested cases like `method(List(1).map^)`