Following SQL command
select TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL(\'0 00:00:00\'))) from table1
produces a result of the format: +0000000
to_char() seems to have fixed format :( so regexp_substr may be an option, e.g.:
SELECT regexp_substr (TO_DSINTERVAL ('10 10:00:00'), '\d{2} \d{2}:\d{2}:\d{2}\.\d{3}') t_interval FROM dual