みなさんありがとうございました。
ようやくできてきたのですが、
X(start)文字目からY(stop)文字目の文字を取り出す方法を2通り考えてみたのですが
どちらのほうが負荷が少ないのでしょうか?

string = str.split(//e)[start..stop].to_s

while start <= stop
print "#{str[start-1].chr}"
start += 1
end