 NUMBER        : /^(\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?(e[+\-]?[0-9]+)?)))\b/i
 HEREDOC       : /^("{6}|'{6}|"{3}\n?([\s\S]*?)\n?([ \t]*)"{3}|'{3}\n?([\s\S]*?)\n?([ \t]*)'{3})/
 INTERPOLATION : /(^|[\s\S]*?(?:[\\]|\\\\)?)\$([a-zA-Z_@]\w*|{[\s\S]*?(?:[^\\]|\\\\)})/
-JS            : /^(``|`([\s\S]*?)([^\\]|\\\\)`)/
 OPERATOR      : /^([+\*&|\/\-%=<>:!?]+)/
 WHITESPACE    : /^([ \t]+)/
 COMMENT       : /^(((\n?[ \t]*)?#[^\n]*)+)/

    @i += regex.length
    true

  # Matches a balanced group such as a single or double-quoted string.
  balanced_group: (delimited...) ->
    (each[1]: each[0]) for each in delimited when not each[1]?
    (each[2]: '\\') for each in delimited when not each[2]?
    levels: []
    i: 0
    while i < @chunk.length
      for each, type in delimited
        if each[2] isnt false and @chunk.substring(i, i + each[2].length) is each[2]
          i += each[2].length
          break
        else if levels.length and @chunk.substring(i, i + each[1].length) is each[1] and levels[levels.length - 1] is type
          levels.pop()

            tokens.push ['STRING', "$quote$before$quote"] if before.length
            if interp.substring(0, 1) is '{'
              inner: interp.substring(1, interp.length - 1)
              nested: lexer.tokenize "($inner)", {rewrite: no, line: @line}
              nested.pop()
              tokens.push ['TOKENS', nested]
            else
