code: function splitHtml(html, opts, pcex) {
    var _bp = pcex._bp
  
    // `brackets.split` is a heavy function, so don't call it if not necessary
    if (html && _bp[4].test(html)) {
      var
        jsfn = opts.expr && (opts.parser || opts.type) ? _compileJS : 0,
        list = brackets.split(html, 0, _bp),
        expr
  
      for (var i = 1; i < list.length; i += 2) {
        expr = list[i]
        if (expr[0] === '^')
          expr = expr.slice(1)
        else if (jsfn) {
          var israw = expr[0] === '='
          expr = jsfn(israw ? expr.slice(1) : expr, opts).trim()
          if (expr.slice(-1) === ';') expr = expr.slice(0, -1)
          if (israw) expr = '=' + expr
        }
        list[i] = '\u0001' + (pcex.push(expr.replace(/[\r\n]+/g, ' ').trim()) - 1) + _bp[1]
      }
      html = list.join('')
    }
    return html
  }
docs: Replaces expressions in the HTML with a marker, and runs expressions through the parser, except those beginning with `{^`.