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>