codice:
string find_pat(string where, int * pos, string start, string end)
{
	int pos2, pos3;
	int work=1;

	pos2=*pos;
	while(work)
	{
		pos2 = where.find (end, pos2);
		if(pos2 == string::npos) return string("");
	
		pos3 = where.rfind (start, pos2);
		if(pos3 == string::npos || pos3 < *pos) 
		{
			pos2 = pos2 + end.length() ;
		}
		else
		{
			pos3 += start.length();
			work=0;
		}
	}

	*pos=pos2+end.length();
	return where.substr (pos3, pos2-pos3);
}
usala cosi'
codice:
int pos = 0;
string s = find_pat("Salve, io sono una stringa", &pos, string("Salve,"), "sono una stringa");
cout << s;