Question: why doesn't collect work in all cases?

Why does collect only work sometimes?

I will show with a simple example.  I can do this

a := 5*x^2-4*x+3;
       
                             a := 5 x2  - 4 x + 3
h := exp(x)*a+exp(x);
                          h := ex (5 x  - 4 x + 3) + ex

collect(h, exp(x));
                                (5 x  - 4 x + 4) ex

but I can't do this

hh := v^x*a+v^x;
                       hh := vx  (5 x  - 4 x + 3) + vx
collect(hh, v^x);
Error, (in collect) cannot collect v^x

Although a workaround I can get it to work with simplify
simplify(hh);
                             vx  (5 x  - 4 x + 4)

But shouldn't collect also work?

Please Wait...