I think that the definition of SUBSTRING statement contains: "If start_expression is less than 1, the returned expression will begin at the first character that is specifed in value_expression".
So I think this definition meant that:
SELECT * SUBSTRING('123456',0,3) should return 123.