正規表現の名前付きキャプチャの名前が重複したときの動作

ふむむ。重複した名前を参照するとこうなるのか。

[1] pry(main)> /(?<g>A)|(?<g>z)/ =~ "A" && { g => $~ }
=> {"A"=>#<matchdata g: g:nil>}
[2] pry(main)> /(?<g>A)|(?<g>z)/ =~ "z" && { g => $~ }
=> {"z"=>#<matchdata g:nil g:>}
[3] pry(main)> /(?<g>A)|(?<g>z)/ =~ "Az" && { g => $~ }
=> {"A"=>#<matchdata g: g:nil>}
[4] pry(main)> /(?<g>A)|(?<g>z)/ =~ "zA" && { g => $~ }
=> {"z"=>#<matchdata g:nil g:>}
[5] pry(main)> /(?<g>.)(?<g>.)/ =~ 'ab' && { g => $~ }
=> {"b"=>#<matchdata g:>}

こういうものか。