^(https?:\/\/)?([\w-]+\.)+[\w-]+(\/[^\s]*)?$
Matches:
✓ https://example.com
✓ http://sub.domain.com/path
✓ example.com/page?id=123
^(https?:\/\/)?([\w-]+\.)+[\w-]+(\/[^\s]*)?$Yes, (\/[^\s]*)? matches paths, query strings, and fragments.
For IDN support, use a Unicode-aware regex library or URL parsing library.