const char* buffer = "Today is 11 Feb 2001 "; const char* pattern = "[0-9]"; regex_t re; cout << "headline::regcomp()" << endl; int error = 0; if(error = regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB) == 0) { cout << "headline::regcomp() - done" << endl; int pm_size = 1; regmatch_t pm;//[pm_size]; int error = regexec(&re, &buffer[0], pm_size, &pm, 0); while(!error) { cout << "buffer = " << (int)buffer << endl; cout << "pm.rm_so = " << pm.rm_so << endl; cout << "pm.rm_eo = " << pm.rm_eo << endl; cout << endl; //string s(buffer + pm.rm_so, pm.rm_eo - pm.rm_so); buffer += pm.rm_eo; error = regexec(&re, buffer, pm_size, &pm, REG_NOTBOL); } } regfree(&re); cout << "error = " << error << endl; if(error) { int size = regerror(error, &re, 0, 0); char* ebuf = new char[size +1]; regerror(error, &re, ebuf, size); cout << ebuf << endl; delete [] ebuf; }