(string-search "" "banana") returns 0, while (string-search-char "" "banana") and (string-search-set "" "banana") return NIL. Seeing that the zeroeth element of "banana" is "b" and not the null string, it seems that string-search should do what the other two functions do, namely return NIL for this somewhat pathalogical case.