Inserts the given +other_string+ into +self+; returns +self+. If the given +index+ is non-negative, inserts +other_string+ at offset +index+: 'foo'.insert(0, 'bar') # => "barfoo" 'foo'.insert(1, 'bar') # => "fbaroo" 'foo'.insert(3, 'bar') # => "foobar" 'тест'.insert(2, 'bar') # => "теbarст" # Characters, not bytes. 'こんにちは'.insert(2, 'bar') # => "こんbarにちは" If the +index+ is negative, counts backward from the end of +self+ and inserts +other_string+ _after_ the offset: 'foo'.insert(-2, 'bar') # => "fobaro" Related: see {Modifying}[rdoc-ref:String@Modifying].