遠藤です。

そもそもRangeクラスに対する誤解がありました。だって、マニュアルに
両端を含む、と書いてあったんだも〜ん。シクシク(;;)
1...2.eachでも試してみればよかったのですが、配列のインデックスに
Rangeオブジェクトを指す変数をいれて怒られた記憶があったので、リテ
ラルしか書けないものと錯覚しました。怒られた時は、納得できない
なら、状況をきちんと把握しておかないといけませんね。違うところで
怒られてたのでしょう。ということで、...はすべて了解しました。

ま、Ruby本が出ればまたどっと初心者があらわれますので、我慢して
お付き合いをよろしくお願いします。私も考えてみれば、Rubyを知って
まだ2ヶ月半しかたってないみたいです。すっかりおぼれてしまい
ました。

さて、引続きrb_range_beg_lenですが、
1)err==0の時も、begがインデックスの範囲を超えている時はQnilを
  返した方が、ary[nth]と一貫性がとれているのではないでしょうか。
2)end+=lenとした後beg==0、end==-1の時は、len=0を返した方が
  これも一貫性がとれているのではないでしょうか。

またまた何か勘違いしているようでしたら、「勘違い」と言って
いただくと、会議の最中にでも考えます。
-- 
Akira Endo, akendo / t3.rim.or.jp