This is incorrect:
string substring2 = myString.Substring(3, 6);
First parameter: Starting position
Second parameter: No of characters to extract (i.e. it has to be such that it does not goes out of string's length overall.) Hope you get the logic.
Thus, it should be:
string substring2 = myString.Substring(3, 3);
Refer:
MSDN: String.Substring Method (Int32, Int32)[
^]