#include <iostream>
#include <string>
#include <regex>


using namespace std;


int main ()
{
    string string_array[] = {"http://w...content-available-to-author-only...s.com/reference/regex/regex_match/",
                             "tcp://192.168.2.1:1234/hello/how/are/you",
                             "https://mail.google.com/mail/u/0/?tab=wm#inbox/15178022db56df29?projector=1"};
    regex e("^(?:([A-Za-z]+):)?(\\/{0,3})([0-9.A-Za-z-]+)(?::(\\d+))?(?:\\/([^?#]*))?(?:\\?([^#]*))?(?:#(.*))?$");

    for(int i=0; i<3; i++)
    {
        smatch sm;
        regex_match (string_array[i],sm,e);

        for (unsigned i=1; i<sm.size(); ++i)
        {
            cout << "[" << sm[i] << "] ";
        }

        cout << endl;
    }
    return 0;
}