 
 # Regex-matching-regexes.
 REGEX_START        : /^\/[^\/ ]/
-REGEX_INTERPOLATION: /[^\\]\$[a-zA-Z_@]/
+REGEX_INTERPOLATION: /([^\\]\$[a-zA-Z_@]|[^\\]\$\{.*[^\\]\})/
 REGEX_FLAGS        : /^[imgy]{0,4}/
 REGEX_ESCAPE       : /\\[^\$]/g
 

    return false if     include NOT_REGEX, @tag()
    return false unless regex: @balanced_token ['/', '/']
    regex += (flags: @chunk.substr(regex.length).match(REGEX_FLAGS))
    if (0 < regex.indexOf('${') < regex.indexOf('}')) or 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', '(']]

  # contents of the string. This method allows us to have strings within
  # interpolations within strings etc...
  balanced_string: (str, delimited...) ->
    slash: delimited[0][0] is '/'
    levels: []
    i: 0
    while i < str.length
