The "?" metacharacter seeks to match zero or one repetition of a pattern. This characteristic works well as long as one expects some match to occur.
SQL>
SQL> SELECT REGEXP_INSTR('abc','d') FROM dual;
REGEXP_INSTR('ABC','D')
-----------------------
0
SQL>