If you have applied a character styles to all the hyperlinks you can maybe change the character style to use No Break.
You can also use this GREP
But yes this wont be 100% accurate and may miss some URLS, or should i say find only part of them and not the complete one.
And be careful what you wish for. A long, unbreakable, URL can send the whole story into overset.
Be careful too:
A sample of unit in a chemestry book:
… x = 5 kg.mol-1 …
Or a book on Grep:
… use: (?i)(www)(\S+)(\.com) to search …
Very delicate approach!
What I often do instead is include a grep style like:
using NJ, not really planned for this!
I would do a search based on the regex you suggest and I would place a NJ before and after the text part I found. The char style associated includes a highlight option. Therefore the text parts are easily identifiable. If one does not suit me, I delete the 2 NJ.
This approach is certainly unorthodox but very pragmatic! Can be useful!