The following command works:
$ expr 1 : '\(.\)' || echo fail
1
When trying to match the string "0" the command fails, e.g. $? == 1:
$ expr 0 : '\(.\)' || echo fail
fail
The man page says:
Exit status is 0 if EXPRESSION is neither null nor 0
But, returning exit status 1 because the matching string is 0 does not make sense.