How to make NFA remember its first step?
NFAs have finite "memory", and you need to store one bit of information: whether the first symbol was ".


   Copy the automaton for tokens. If your string starts with ", move to one copy; if not, to the other. The first copy then requires a trailing " to accept, the second one does not.

 In general, you can implement any finitely-bounded counter like this: just copy all states as many times as you need.