Forwards in dump_string(MirrorString("abc"),6) 'a' 'ab' 'abc' 'abcc' 'abccb' 'abccba' Backwards in dump_string(MirrorString("abc"),6) 'a' 'ba' 'cba' 'ccba' 'bccba' 'abccba' Middle on MirrorString("abc") s[-2] = "b" s[-1] = "a" s[0] = "a" s[1] = "b" s[2] = "c" s[3] = "c" s[4] = "b" s[5] = "a" s[6] = nil s[7] = nil s[8] = nil Underrun on MirrorString("abc") s[-5] = "b" s[-4] = "c" s[-3] = "c" s[-2] = "b" s[-1] = "a" s[0] = "a" s[1] = "b" s[2] = "c" s[3] = "c" s[4] = "b" s[5] = "a" Overrun on MirrorString("abc") s[1] = "b" s[2] = "c" s[3] = "c" s[4] = "b" s[5] = "a" s[6] = nil s[7] = nil s[8] = nil s[9] = nil s[10] = nil s[11] = nil Forwards in dump_string(ReplString(MirrorString("abc"),2),12) 'a' 'ab' 'abc' 'abcc' 'abccb' 'abccba' 'abccbaa' 'abccbaab' 'abccbaabc' 'abccbaabcc' 'abccbaabccb' 'abccbaabccba' Backwards in dump_string(ReplString(MirrorString("abc"),2),12) 'a' 'ba' 'cba' 'ccba' 'bccba' 'abccba' 'aabccba' 'baabccba' 'cbaabccba' 'ccbaabccba' 'bccbaabccba' 'abccbaabccba' Middle on ReplString(MirrorString("abc"),2) s[1] = "b" s[2] = "c" s[3] = "c" s[4] = "b" s[5] = "a" s[6] = "a" s[7] = "b" s[8] = "c" s[9] = "c" s[10] = "b" s[11] = "a" Underrun on ReplString(MirrorString("abc"),2) s[-5] = "b" s[-4] = "c" s[-3] = "c" s[-2] = "b" s[-1] = "a" s[0] = "a" s[1] = "b" s[2] = "c" s[3] = "c" s[4] = "b" s[5] = "a" Overrun on ReplString(MirrorString("abc"),2) s[7] = "b" s[8] = "c" s[9] = "c" s[10] = "b" s[11] = "a" s[12] = nil s[13] = nil s[14] = nil s[15] = nil s[16] = nil s[17] = nil Forwards in dump_string(ReplString("abcdefg",1),7) 'a' 'ab' 'abc' 'abcd' 'abcde' 'abcdef' 'abcdefg' Backwards in dump_string(ReplString("abcdefg",1),7) 'g' 'fg' 'efg' 'defg' 'cdefg' 'bcdefg' 'abcdefg' Middle on ReplString("abcdefg",1) s[-2] = "f" s[-1] = "g" s[0] = "a" s[1] = "b" s[2] = "c" s[3] = "d" s[4] = "e" s[5] = "f" s[6] = "g" s[7] = nil s[8] = nil Underrun on ReplString("abcdefg",1) s[-5] = "c" s[-4] = "d" s[-3] = "e" s[-2] = "f" s[-1] = "g" s[0] = "a" s[1] = "b" s[2] = "c" s[3] = "d" s[4] = "e" s[5] = "f" Overrun on ReplString("abcdefg",1) s[2] = "c" s[3] = "d" s[4] = "e" s[5] = "f" s[6] = "g" s[7] = nil s[8] = nil s[9] = nil s[10] = nil s[11] = nil s[12] = nil Forwards in dump_string(MirrorString(ReplString("abcdefg",1)),14) 'a' 'ab' 'abc' 'abcd' 'abcde' 'abcdef' 'abcdefg' 'abcdefgg' 'abcdefggf' 'abcdefggfe' 'abcdefggfed' 'abcdefggfedc' 'abcdefggfedcb' 'abcdefggfedcba' Backwards in dump_string(MirrorString(ReplString("abcdefg",1)),14) 'a' 'ba' 'cba' 'dcba' 'edcba' 'fedcba' 'gfedcba' 'ggfedcba' 'fggfedcba' 'efggfedcba' 'defggfedcba' 'cdefggfedcba' 'bcdefggfedcba' 'abcdefggfedcba' Middle on MirrorString(ReplString("abcdefg",1)) s[2] = "c" s[3] = "d" s[4] = "e" s[5] = "f" s[6] = "g" s[7] = "g" s[8] = "f" s[9] = "e" s[10] = "d" s[11] = "c" s[12] = "b" Underrun on MirrorString(ReplString("abcdefg",1)) s[-5] = "e" s[-4] = "d" s[-3] = "c" s[-2] = "b" s[-1] = "a" s[0] = "a" s[1] = "b" s[2] = "c" s[3] = "d" s[4] = "e" s[5] = "f" Overrun on MirrorString(ReplString("abcdefg",1)) s[9] = "e" s[10] = "d" s[11] = "c" s[12] = "b" s[13] = "a" s[14] = nil s[15] = nil s[16] = nil s[17] = nil s[18] = nil s[19] = nil s6 = 'MirrorString(ReplString("abcdefg",1))' ReplString("0123456789",1000000000000000000) s4 = 'ReplString("0123456789",1000000000000000000)' s4.size.commas = '"10,000,000,000,000,000,000"' Forwards in dump_string(ReplString("0123456789",1000000000000000000),50) '0' '01' '012' '0123' '01234' '012345' '0123456' '01234567' '012345678' '0123456789' '01234567890' '012345678901' '0123456789012' '01234567890123' '012345678901234' '0123456789012345' '01234567890123456' '012345678901234567' '0123456789012345678' '01234567890123456789' '012345678901234567890' '0123456789012345678901' '01234567890123456789012' '012345678901234567890123' '0123456789012345678901234' '01234567890123456789012345' '012345678901234567890123456' '0123456789012345678901234567' '01234567890123456789012345678' '012345678901234567890123456789' '0123456789012345678901234567890' '01234567890123456789012345678901' '012345678901234567890123456789012' '0123456789012345678901234567890123' '01234567890123456789012345678901234' '012345678901234567890123456789012345' '0123456789012345678901234567890123456' '01234567890123456789012345678901234567' '012345678901234567890123456789012345678' '0123456789012345678901234567890123456789' '01234567890123456789012345678901234567890' '012345678901234567890123456789012345678901' '0123456789012345678901234567890123456789012' '01234567890123456789012345678901234567890123' '012345678901234567890123456789012345678901234' '0123456789012345678901234567890123456789012345' '01234567890123456789012345678901234567890123456' '012345678901234567890123456789012345678901234567' '0123456789012345678901234567890123456789012345678' '01234567890123456789012345678901234567890123456789' Backwards in dump_string(ReplString("0123456789",1000000000000000000),50) '9' '89' '789' '6789' '56789' '456789' '3456789' '23456789' '123456789' '0123456789' '90123456789' '890123456789' '7890123456789' '67890123456789' '567890123456789' '4567890123456789' '34567890123456789' '234567890123456789' '1234567890123456789' '01234567890123456789' '901234567890123456789' '8901234567890123456789' '78901234567890123456789' '678901234567890123456789' '5678901234567890123456789' '45678901234567890123456789' '345678901234567890123456789' '2345678901234567890123456789' '12345678901234567890123456789' '012345678901234567890123456789' '9012345678901234567890123456789' '89012345678901234567890123456789' '789012345678901234567890123456789' '6789012345678901234567890123456789' '56789012345678901234567890123456789' '456789012345678901234567890123456789' '3456789012345678901234567890123456789' '23456789012345678901234567890123456789' '123456789012345678901234567890123456789' '0123456789012345678901234567890123456789' '90123456789012345678901234567890123456789' '890123456789012345678901234567890123456789' '7890123456789012345678901234567890123456789' '67890123456789012345678901234567890123456789' '567890123456789012345678901234567890123456789' '4567890123456789012345678901234567890123456789' '34567890123456789012345678901234567890123456789' '234567890123456789012345678901234567890123456789' '1234567890123456789012345678901234567890123456789' '01234567890123456789012345678901234567890123456789' Middle on ReplString("0123456789",1000000000000000000) s[4999999999999999995] = "5" s[4999999999999999996] = "6" s[4999999999999999997] = "7" s[4999999999999999998] = "8" s[4999999999999999999] = "9" s[5000000000000000000] = "0" s[5000000000000000001] = "1" s[5000000000000000002] = "2" s[5000000000000000003] = "3" s[5000000000000000004] = "4" s[5000000000000000005] = "5" Underrun on ReplString("0123456789",1000000000000000000) s[-5] = "5" s[-4] = "6" s[-3] = "7" s[-2] = "8" s[-1] = "9" s[0] = "0" s[1] = "1" s[2] = "2" s[3] = "3" s[4] = "4" s[5] = "5" Overrun on ReplString("0123456789",1000000000000000000) s[9999999999999999995] = "5" s[9999999999999999996] = "6" s[9999999999999999997] = "7" s[9999999999999999998] = "8" s[9999999999999999999] = "9" s[10000000000000000000] = nil s[10000000000000000001] = nil s[10000000000000000002] = nil s[10000000000000000003] = nil s[10000000000000000004] = nil s[10000000000000000005] = nil Forwards in dump_string(MirrorString(ReplString("0123456789",1000000000000000000)),50) '0' '01' '012' '0123' '01234' '012345' '0123456' '01234567' '012345678' '0123456789' '01234567890' '012345678901' '0123456789012' '01234567890123' '012345678901234' '0123456789012345' '01234567890123456' '012345678901234567' '0123456789012345678' '01234567890123456789' '012345678901234567890' '0123456789012345678901' '01234567890123456789012' '012345678901234567890123' '0123456789012345678901234' '01234567890123456789012345' '012345678901234567890123456' '0123456789012345678901234567' '01234567890123456789012345678' '012345678901234567890123456789' '0123456789012345678901234567890' '01234567890123456789012345678901' '012345678901234567890123456789012' '0123456789012345678901234567890123' '01234567890123456789012345678901234' '012345678901234567890123456789012345' '0123456789012345678901234567890123456' '01234567890123456789012345678901234567' '012345678901234567890123456789012345678' '0123456789012345678901234567890123456789' '01234567890123456789012345678901234567890' '012345678901234567890123456789012345678901' '0123456789012345678901234567890123456789012' '01234567890123456789012345678901234567890123' '012345678901234567890123456789012345678901234' '0123456789012345678901234567890123456789012345' '01234567890123456789012345678901234567890123456' '012345678901234567890123456789012345678901234567' '0123456789012345678901234567890123456789012345678' '01234567890123456789012345678901234567890123456789' Backwards in dump_string(MirrorString(ReplString("0123456789",1000000000000000000)),50) '0' '10' '210' '3210' '43210' '543210' '6543210' '76543210' '876543210' '9876543210' '09876543210' '109876543210' '2109876543210' '32109876543210' '432109876543210' '5432109876543210' '65432109876543210' '765432109876543210' '8765432109876543210' '98765432109876543210' '098765432109876543210' '1098765432109876543210' '21098765432109876543210' '321098765432109876543210' '4321098765432109876543210' '54321098765432109876543210' '654321098765432109876543210' '7654321098765432109876543210' '87654321098765432109876543210' '987654321098765432109876543210' '0987654321098765432109876543210' '10987654321098765432109876543210' '210987654321098765432109876543210' '3210987654321098765432109876543210' '43210987654321098765432109876543210' '543210987654321098765432109876543210' '6543210987654321098765432109876543210' '76543210987654321098765432109876543210' '876543210987654321098765432109876543210' '9876543210987654321098765432109876543210' '09876543210987654321098765432109876543210' '109876543210987654321098765432109876543210' '2109876543210987654321098765432109876543210' '32109876543210987654321098765432109876543210' '432109876543210987654321098765432109876543210' '5432109876543210987654321098765432109876543210' '65432109876543210987654321098765432109876543210' '765432109876543210987654321098765432109876543210' '8765432109876543210987654321098765432109876543210' '98765432109876543210987654321098765432109876543210' Middle on MirrorString(ReplString("0123456789",1000000000000000000)) s[9999999999999999995] = "5" s[9999999999999999996] = "6" s[9999999999999999997] = "7" s[9999999999999999998] = "8" s[9999999999999999999] = "9" s[10000000000000000000] = "9" s[10000000000000000001] = "8" s[10000000000000000002] = "7" s[10000000000000000003] = "6" s[10000000000000000004] = "5" s[10000000000000000005] = "4" Underrun on MirrorString(ReplString("0123456789",1000000000000000000)) s[-5] = "4" s[-4] = "3" s[-3] = "2" s[-2] = "1" s[-1] = "0" s[0] = "0" s[1] = "1" s[2] = "2" s[3] = "3" s[4] = "4" s[5] = "5" Overrun on MirrorString(ReplString("0123456789",1000000000000000000)) s[19999999999999999995] = "4" s[19999999999999999996] = "3" s[19999999999999999997] = "2" s[19999999999999999998] = "1" s[19999999999999999999] = "0" s[20000000000000000000] = nil s[20000000000000000001] = nil s[20000000000000000002] = nil s[20000000000000000003] = nil s[20000000000000000004] = nil s[20000000000000000005] = nil s5 = 'MirrorString(ReplString("0123456789",1000000000000000000))' s5[10_000_000_000-1,2] = '"90"' s5.size.commas = '"20,000,000,000,000,000,000"' Forwards in dump_string(MirrorString(ReplString("0123456789",1000000000000000000)),50) '0' '01' '012' '0123' '01234' '012345' '0123456' '01234567' '012345678' '0123456789' '01234567890' '012345678901' '0123456789012' '01234567890123' '012345678901234' '0123456789012345' '01234567890123456' '012345678901234567' '0123456789012345678' '01234567890123456789' '012345678901234567890' '0123456789012345678901' '01234567890123456789012' '012345678901234567890123' '0123456789012345678901234' '01234567890123456789012345' '012345678901234567890123456' '0123456789012345678901234567' '01234567890123456789012345678' '012345678901234567890123456789' '0123456789012345678901234567890' '01234567890123456789012345678901' '012345678901234567890123456789012' '0123456789012345678901234567890123' '01234567890123456789012345678901234' '012345678901234567890123456789012345' '0123456789012345678901234567890123456' '01234567890123456789012345678901234567' '012345678901234567890123456789012345678' '0123456789012345678901234567890123456789' '01234567890123456789012345678901234567890' '012345678901234567890123456789012345678901' '0123456789012345678901234567890123456789012' '01234567890123456789012345678901234567890123' '012345678901234567890123456789012345678901234' '0123456789012345678901234567890123456789012345' '01234567890123456789012345678901234567890123456' '012345678901234567890123456789012345678901234567' '0123456789012345678901234567890123456789012345678' '01234567890123456789012345678901234567890123456789' Backwards in dump_string(MirrorString(ReplString("0123456789",1000000000000000000)),50) '0' '10' '210' '3210' '43210' '543210' '6543210' '76543210' '876543210' '9876543210' '09876543210' '109876543210' '2109876543210' '32109876543210' '432109876543210' '5432109876543210' '65432109876543210' '765432109876543210' '8765432109876543210' '98765432109876543210' '098765432109876543210' '1098765432109876543210' '21098765432109876543210' '321098765432109876543210' '4321098765432109876543210' '54321098765432109876543210' '654321098765432109876543210' '7654321098765432109876543210' '87654321098765432109876543210' '987654321098765432109876543210' '0987654321098765432109876543210' '10987654321098765432109876543210' '210987654321098765432109876543210' '3210987654321098765432109876543210' '43210987654321098765432109876543210' '543210987654321098765432109876543210' '6543210987654321098765432109876543210' '76543210987654321098765432109876543210' '876543210987654321098765432109876543210' '9876543210987654321098765432109876543210' '09876543210987654321098765432109876543210' '109876543210987654321098765432109876543210' '2109876543210987654321098765432109876543210' '32109876543210987654321098765432109876543210' '432109876543210987654321098765432109876543210' '5432109876543210987654321098765432109876543210' '65432109876543210987654321098765432109876543210' '765432109876543210987654321098765432109876543210' '8765432109876543210987654321098765432109876543210' '98765432109876543210987654321098765432109876543210' Middle on MirrorString(ReplString("0123456789",1000000000000000000)) s[9999999999999999995] = "5" s[9999999999999999996] = "6" s[9999999999999999997] = "7" s[9999999999999999998] = "8" s[9999999999999999999] = "9" s[10000000000000000000] = "9" s[10000000000000000001] = "8" s[10000000000000000002] = "7" s[10000000000000000003] = "6" s[10000000000000000004] = "5" s[10000000000000000005] = "4" Underrun on MirrorString(ReplString("0123456789",1000000000000000000)) s[-5] = "4" s[-4] = "3" s[-3] = "2" s[-2] = "1" s[-1] = "0" s[0] = "0" s[1] = "1" s[2] = "2" s[3] = "3" s[4] = "4" s[5] = "5" Overrun on MirrorString(ReplString("0123456789",1000000000000000000)) s[19999999999999999995] = "4" s[19999999999999999996] = "3" s[19999999999999999997] = "2" s[19999999999999999998] = "1" s[19999999999999999999] = "0" s[20000000000000000000] = nil s[20000000000000000001] = nil s[20000000000000000002] = nil s[20000000000000000003] = nil s[20000000000000000004] = nil s[20000000000000000005] = nil s6 = 'ReplString(MirrorString(ReplString("0123456789",1000000000000000000)),1000)' s6.size.commas = '"20,000,000,000,000,000,000,000"'