Rubyで文字列からn文字取り出す

rubyを使っていていつも困ることがあった。それは文字列に文字単位でアクセスするメソッドが無いこと。jcode.rbを取り込むことで可能になるのだけど面倒くさいし,UTF-8文字列には使えない。こんな基本的な機能はオレが気づかないだけでどっかにあるんじゃないかとずっと疑問に思っていたのだけど,先日唐突に解決しました。
具体的には正規表現クラスが文字単位の操作に対応しているので,これを使うといいのでした。

str =~ /^(.{5})/u

とやれば,先頭5文字を$1で取り出せます。ちなみに最後のuはUTF-8文字列を意味していて,ruby文字列はJIS,シフトJISeucの3つしかサポートしていないのに,正規表現ならこれに加えてUTF-8も使える。うーん,なんでもっと早く気づかなかったかなあ。こういうのたくさんあるんだろうな..