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

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

          levels.push(pair)
          i += open.length - 1
          break
      break if not levels.length or slash and starts str, '\n', i
      i += 1
    if levels.length
      return false if slash
      throw new Error "SyntaxError: Unterminated ${levels.pop()[0]} starting on line ${@line + 1}"
    return false if i is 0
    return str.substring(0, i)
