Quando a posição inicial é 0 (zero), é tratada como 1.
Quando a posição é positiva, a função conta desde o início da string para encontrar o primeiro caractere.
Quando a posição é negativa, a função conta para trás a partir do fim da string.
Ex.: SHOW SUBSTR('abcdefg',3,4)
cdef
Ex.: SHOW SUBSTR('abcdefg',-5,4)
cdef
Fonte: https://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_functions_2101.htm#OLADM679