This regular expression parses URLs and captures their subcomponents.
${1} ==> Scheme/Protocol${2} ==> Subdomain${3} ==> Domain name${4} ==> Subdirectory${5} ==> Path${6} ==> Query${7} ==> FragmentIt ignores port numbers. Port numbers are necessary. But, they are rarely visible in URLs. When used in a URL, it comes after the TLD separated by a colon. When using HTTP, port 80 is standard. For HTTPS, use port 443.