Ok, non sarà il massimo dell' eleganza, ma ho risolto da me così:

codice:
char *Estrai(char *target, char *src)
{
 int len, i = 0, j = 0, trovato = 0, l;
 char *temp;
 len = strlen(target);
 l = len;
 temp = (char *) malloc(len);
 while(src[i] != '\0' && trovato == 0)
 {
  if(src[i] == target[j])
  {
   if(l > 1)
   {
    i++;
    j++;
    l--;
   }
   else
    trovato = 1;
  }
  else
  {
   j = 0;
   l  = len;
   i++;
  }
 }
 if(trovato == 1)
 {
  i++;
  if(src[i] == '=')
  {
   j = 0;
   i++;
   while(src[i] != '&' && src[i] != '\0')
   {
    temp[j] = src[i];
    j++;
    i++;
   }
   temp[j] = '\0';
  }
 }
 return temp;
}
Se volete, pareri e consigli per alternative sono sempre ben accetti...