In case anyone is interested, I came up with a solution that works
around the limitations of parsing and string length:
foreach outcome in o1 o2 o3 {;
probit `outcome' x1 x2 x3 age age2 ;
local a: colfullnames e(b);
local b "age age2 _cons";
local c: list a - b;
adjust `c","_cons","",.)' if e(sample), pr by(age age2) gen(`outcome'_hat)
}
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/