There isn't a pattern for that, but you can simulate it by first contracting your expression with a dummy vector and then substituting in there. So e.g.
{a,b,c}::Indices.
ex:= x^a + x^b x_b y^a;
ex := @(ex) f_a:
distribute(_);
substitute(_, $x^a f_a -> z^a f_a$);
factor_out(_, $f_a$);