So apparently, matched inside the foreach is still 0. Something like Lazy Evaluation, but I don't really know. Anyway.. this works
foreach UF* [eval matched = if(like('<<FIELD>>',valMask),matched+1,matched)] | eval Property = if(matched>=1,Property,null)
... View more