I have solved it... Shame...

--------------------------------

I have problem with this code:

            cin >> str;
            smatch m;

            regex e("([[:w:]]+)@([[:w:]]+)\.com"); //<- Here was the error (it was regex e("([[:w:]+)@([[:w:]]+)\.com");) silly me :((

            bool found = regex_search(str, m, e);

            cout << "m.size() " << m.size() << endl;
            for (int n = 0; n < m.size(); n++)
                cout << "m[" << n << "]: str()=" << m[n].str() << endl;

            cout << "m.prefix().str(): " << m.prefix().str() << endl;
            cout << "m.suffix().str(): " << m.suffix().str() << endl;

When you input something like:
<whatever>test@gmail.com<yeah>

output should be:
m.size() 3
m[0] = test@gmail.com
m[1] = test
m[2] = gmail
m.prefix().str() = <whatever>
m.suffix().str() = <yeah>

but all I get is

m.size() 2
m[0] = test@gmail.com
m[1] = test@gmail
m.prefix().str() = <whatever>
m.suffix().str() = <yeah>

Can't find solution...