s.size = '30' s[0] = '"a"' s[1] = '"b"' s[2] = '"c"' s[3] = '"a"' s.size = '30' s[-1] = '"c"' s[-2] = '"b"' s[-3] = '"a"' s[-4] = '"c"' Forwards in dump_string(ReplString("abc",10),30) 'a' 'ab' 'abc' 'abca' 'abcab' 'abcabc' 'abcabca' 'abcabcab' 'abcabcabc' 'abcabcabca' 'abcabcabcab' 'abcabcabcabc' 'abcabcabcabca' 'abcabcabcabcab' 'abcabcabcabcabc' 'abcabcabcabcabca' 'abcabcabcabcabcab' 'abcabcabcabcabcabc' 'abcabcabcabcabcabca' 'abcabcabcabcabcabcab' 'abcabcabcabcabcabcabc' 'abcabcabcabcabcabcabca' 'abcabcabcabcabcabcabcab' 'abcabcabcabcabcabcabcabc' 'abcabcabcabcabcabcabcabca' 'abcabcabcabcabcabcabcabcab' 'abcabcabcabcabcabcabcabcabc' 'abcabcabcabcabcabcabcabcabca' 'abcabcabcabcabcabcabcabcabcab' 'abcabcabcabcabcabcabcabcabcabc' Backwards in dump_string(ReplString("abc",10),30) 'c' 'bc' 'abc' 'cabc' 'bcabc' 'abcabc' 'cabcabc' 'bcabcabc' 'abcabcabc' 'cabcabcabc' 'bcabcabcabc' 'abcabcabcabc' 'cabcabcabcabc' 'bcabcabcabcabc' 'abcabcabcabcabc' 'cabcabcabcabcabc' 'bcabcabcabcabcabc' 'abcabcabcabcabcabc' 'cabcabcabcabcabcabc' 'bcabcabcabcabcabcabc' 'abcabcabcabcabcabcabc' 'cabcabcabcabcabcabcabc' 'bcabcabcabcabcabcabcabc' 'abcabcabcabcabcabcabcabc' 'cabcabcabcabcabcabcabcabc' 'bcabcabcabcabcabcabcabcabc' 'abcabcabcabcabcabcabcabcabc' 'cabcabcabcabcabcabcabcabcabc' 'bcabcabcabcabcabcabcabcabcabc' 'abcabcabcabcabcabcabcabcabcabc' Middle on ReplString("abc",10) s[10] = "b" s[11] = "c" s[12] = "a" s[13] = "b" s[14] = "c" s[15] = "a" s[16] = "b" s[17] = "c" s[18] = "a" s[19] = "b" s[20] = "c" Underrun on ReplString("abc",10) s[-5] = "b" s[-4] = "c" s[-3] = "a" s[-2] = "b" s[-1] = "c" s[0] = "a" s[1] = "b" s[2] = "c" s[3] = "a" s[4] = "b" s[5] = "c" Overrun on ReplString("abc",10) s[25] = "b" s[26] = "c" s[27] = "a" s[28] = "b" s[29] = "c" s[30] = nil s[31] = nil s[32] = nil s[33] = nil s[34] = nil s[35] = nil