• Interestingly enough, the MSDN documentation linked to from the answer incorrectly states:

    "In this case, the number of characters that are returned is the largest value of either the sum of start_expression and length_expression or 0."

    while the knowledgebase article correctly states:

    "In cases where the starting position is less than one, the ANSI specified behavior is to return a number of characters equal to the starting position plus length minus 1 (emphasis mine), starting at character position one."

    I've commented on the MSDN documentation; hopefully they will correct it soon.