   # Matches numbers, including decimals, hex, and exponential notation.
   # Be careful not to interfere with ranges-in-progress.
   numberToken: ->
-    return false unless number = @match NUMBER, 1
+    return false unless number = @match NUMBER
     return false if @tag() is '.' and starts number, '.'
     @i += number.length
     @token 'NUMBER', number

    return false if first[1] is ' ' and @tag() not in ['CALL_START', '=']
    return false if     include NOT_REGEX, @tag()
    return false unless regex = @balancedToken ['/', '/']
    return false unless end = @chunk.substr(regex.length).match REGEX_END
    regex += flags = end[2] if end[2]
    if regex.match REGEX_INTERPOLATION
      str = regex.substring(1).split('/')[0]
      str = str.replace REGEX_ESCAPE, (escaped) -> '\\' + escaped
      @tokens = @tokens.concat [['(', '('], ['NEW', 'new'], ['IDENTIFIER', 'RegExp'], ['CALL_START', '(']]
      @interpolateString "\"#{str}\"", escapeQuotes: yes
      @tokens.splice @tokens.length, 0, [',', ','], ['STRING', "\"#{flags}\""] if flags
      @tokens.splice @tokens.length, 0, [')', ')'], [')', ')']
    else
      @token 'REGEX', regex
    @i += regex.length
    true

  # Matches a token in which which the passed delimiter pairs must be correctly

  # Keeps track of the level of indentation, because a single outdent token
  # can close multiple indents, so we need to know how far in we happen to be.
  lineToken: ->
    return false unless indent = @match MULTI_DENT
    @line += count indent, '\n'
    @i    += indent.length
    prev = @prev 2
    size = indent.length - 1 - indent.lastIndexOf '\n'
    nextCharacter = @match NEXT_CHARACTER, 1
    noNewlines = nextCharacter is '.' or nextCharacter is ',' or @unfinished()
    if size - @indebt is @indent
