Элемент в Ruby (и некоторых других языках) имеет прямой индекс и "обратный". Итак, строка длиной n имеет 0..(n-1) и дополнительные (-n)..-1 индексы, но не более - вы не можете использовать >=n или <-n индексы.
Надеюсь, что это пригодится кому-то. Отрезает пару символов от лучшего подхода до сих пор, и будет очень читабельным, как только будут приняты бесконечные диапазоны.