anchor.diff:              let before = value.Substring(0, index)
               let after = value.Substring(index + search.Length)
               let replace = replace |> TC.ToString
  -            let replace = evaluateReplacement search before after replace null
  +            let replace = evaluateReplacement search (fun () -> before) (fun () -> after) replace null
               before + replace + after
   
           else
  
positive.code:             if not search.Global then
                search.Put("lastIndex", m.Index + 1 |> double)
  
              let before = value.Substring(0, m.Index)
              let after = value.Substring(Math.Min(value.Length - 1, m.Index + m.Length))
              evaluateReplacement m.Value before after replace m.Groups
  
            search.RegExp.Replace(value, MatchEvaluator matchEval, count, lastIndex)
  
negative.code:             | "$0" -> "$0"
              | "$00" -> "$00"
              | "$&" -> matched
              | "$`" -> before()
              | "$'" -> after()
              | _ ->
                let subPatternIndex = t.Substring 1 |> int
                if groups <> null && subPatternIndex < groups.Count
  