Is it safe to assume that all bots’ user agents always have URLs in the user agent strings?
I, of course, compare the user agent against the list of bots, but the idea here to do a preliminary check before check it against a long list.
Perhaps if I could reword my question better, is there any valid non-bot, non-crawler, non-spider or any non-filthy creature that has a URL in the user agent?
Nope. Check out this bot list, it has plenty of bots that don’t sport a URL.
I can’t think of a browser that has a URL in the agent string, but this is definitely a dangerous assumption to work with. Remember that for example, Internet Explorer Add-Ons can add their signatures to the browser’s user agent string. You can’t guarantee there won’t be a URL in it.