class Regexp::Parser

def assign_effective_number(exp)

def assign_effective_number(exp)
  exp.effective_number =
    exp.number + total_captured_group_count + (exp.number < 0 ? 1 : 0)
  exp.effective_number > 0 ||
    raise(ParserError, "Invalid reference: #{exp.reference}")
end