Description
In your expression the .
is grabbing any character and the +
or *
makes the capture greedy. The net effect is that all characters are captured.
([-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6})\b([-a-zA-Z0-9@:%_\+.~#?&\/=]*)

This regular expression will do the following:
- Finds strings that resemble urls
- ignores any leading
http
or https
- splits the query substring from the URL
Example
Live Demo
https://regex101.com/r/kB1mS6/3
Sample text
what is <http://google.com>?
what is www.ibm.com?
are these the Droids.I.com?Lookingfor=Yes
Sample Matches
- Capture group 0 gets the url and query string if it exists
- capture group 1 gets the url
- Capture group 2 gets the query string if it exists
MATCH 1
1. [16-26] `google.com`
2. [26-26] ``
MATCH 2
1. [37-48] `www.ibm.com`
2. [48-49] `?`
MATCH 3
1. [64-76] `Droids.I.com`
2. [76-91] `?Lookingfor=Yes`
To further capture additional words in the sentence you can modify the expression:
([-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6})\b([-a-zA-Z0-9@:%_\+.~#?&\/=]*)(?:>?\s+(down))?

Examples
Live Demo
https://regex101.com/r/kB1mS6/4
Sample Text
what is <http://google.com> down?
what is www.ibm.com?
are these the Droids.I.com?Lookingfor=Yes
why is http://www.bing.com down?
why is www.bing.com down?
Sample Matches
MATCH 1
1. `google.com`
2. ``
3. `down`
MATCH 2
1. `www.ibm.com`
2. `?`
MATCH 3
1. `Droids.I.com`
2. `?Lookingfor=Yes`
MATCH 4
1. `www.bing.com`
2. ``
3. `down`
MATCH 5
1. `www.bing.com`
2. ``
3. `down`
This slightly modifies the expression from https://stackoverflow.com/a/3809435/3836229 to separately capture the URL.