   # referenced as property names here, so you can still do `jQuery.is()` even
   # though `is` means `===` otherwise.
   identifierToken: ->
-    return false unless id = @match IDENTIFIER
+    return false unless match = IDENTIFIER.exec @chunk
+    id = match[0]
     @i += id.length
     if id is 'all' and @tag() is 'FOR'
       @token 'ALL', id


  # Matches JavaScript interpolated directly into the source via backticks.
  jsToken: ->
    return false unless @chunk.charAt(0) is '`' and script = @match JSTOKEN
    @token 'JS', script.slice 1, -1
    @i += script.length
    true


  prev: (index) ->
    @tokens[@tokens.length - (index or 1)]

  # Are we in the midst of an unfinished expression?
  unfinished: ->
    (prev  = @prev 2 ) and prev[0] isnt '.' and
