class Regexp::Parser

def assign_referenced_expressions

def assign_referenced_expressions
  targets = {}
  root.each_expression do |exp|
    exp.is_a?(Group::Capture) && targets[exp.identifier] = exp
  end
  root.each_expression do |exp|
    exp.respond_to?(:reference) &&
      exp.referenced_expression = targets[exp.reference]
  end
end