int begin = value.getBegin();
int range = begin + value.getRealSize();
final Matcher matcher = prepared.matcher(value.getUnsafeBytes(), begin, range);
DynamicScope scope = context.getCurrentScope();
if (matcher.search(begin, range, Option.NONE) >= 0) {
repl = RubyRegexp.regsub19(repl, this, matcher, pattern);
RubyMatchData match = RubyRegexp.updateBackRef19(context, this, scope, matcher, pattern);
match.regexp = regexp;
return subBangCommon19(context, pattern, matcher, repl, repl.flags);
} else {