 
   # Matches regular expression literals. Lexing regular expressions is difficult
   # to distinguish from division, so we borrow some basic heuristics from
-  # JavaScript and Ruby, borrow slash balancing from `@balancedString`, and
-  # borrow interpolation from `@interpolateString`.
+  # JavaScript and Ruby.
   regexToken: ->
     return false if @chunk.charAt(0) isnt '/'
     return @heregexToken match if match = HEREGEX.exec @chunk
-    return false unless first = REGEX_START.exec @chunk
-    return false if first[1] is ' ' and @tag() not in ['CALL_START', '=']
     return false if include NOT_REGEX, @tag()
-    return false unless regex = @balancedString @chunk, [['/', '/']]
-    return false unless end = @chunk[regex.length..].match REGEX_END
-    flags = end[0]
-    if ~regex.indexOf '#{'
-      str = regex.slice 1, -1
-      @tokens.push ['IDENTIFIER', 'RegExp'], ['CALL_START', '(']
-      @interpolateString "\"#{str}\"", regex: yes
-      @tokens.push [',', ','], ['STRING', "\"#{flags}\""] if flags
-      @tokens.push ['CALL_END', ')']
-    else
-      @token 'REGEX', regex + flags
-    @i += regex.length + flags.length
+    return false unless match = REGEX.exec @chunk
+    @token 'REGEX', match[0]
+    @i += match[0].length
     true
 
   # Matches experimental, multiline and extended regular expression literals.

JSTOKEN    = /^`[^\\`]*(?:\\.[^\\`]*)*`/

# Regex-matching-regexes.
REGEX_START         = /^\/([^\/])/
REGEX_END           = /^[imgy]{0,4}(?![a-zA-Z])/
REGEX_ESCAPE        = /\\[^#]/g

HEREGEX      = /^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?![A-Za-z])/
HEREGEX_OMIT = /\s+(?:#.*)?/g


  # interpolations within strings, ad infinitum.
  balancedString: (str, delimited, options) ->
    options or= {}
    levels = []
    i = 0
    slen = str.length
