Not absolutely sure what the desired result is, but...
in your first pattern, you wouldn't need the null-string aternative, just a ?-quatifier (but the null alternitive spoils it anyway)
in the latter particle, the aternation specifier is wrong, the charater group [] includes aternation between those charakters.
So, something like Local $i = 0, $asTest[4] = ['http://www.google.com/','http://www.google.com','www.google.com','www.google.com/sub']
For $i = 0 To UBound($asTest) - 1
ConsoleWrite($asTest[$i] & ' => ' & StringRegExpReplace($asTest[$i], '(?i)(?>http\://|\A)([^/]*)(?>/\z|\z)','$1') & @crlf )
Nextwould strip the surrounds and let you work on with a unified representation.
@ ResNullius: I bet that there's a simpler pattern doing the same job?
edit: typos