Expression Manipulation – Collects integer and non-integer powers simultaneously

Imagine we have an expression that contains both integers ($$y$$. $$y ^ 3$$. $$y ^ 8$$ etc.) and non-integer powers ($$y ^ {1+ alpha}$$. $$y ^ {2 , alpha}$$. $$y ^ {2 + 3 , alpha}$$) of the variables $$y$$, from where $$alpha in mathbb {R}$$. $$alpha> 0$$,

For example

``````expr=(-1 + (-1 + x) y + (-1 + x - x^2) y^2) ((1 + x)^4 (1 + y^2 a2(x) +
y^α sna(x))^2 ((1 + (-1 + x) y) (1 +
1/2 (-1 + x) x (-1 + (-1 + x) x (6 + x (-8 + 3 x))) y +
y^α sna(x)) (1 + 1/2 (-1 + x) x (1 + (-1 + x) x (-14 + x (-8 + 21 x))) y +
y^α sna(x)) + (1 +1/2 x (-1 + x (35 + x (-76 + x (23 + (46 - 27 x) x)))) y +
y^α sna(x)) (3 + 1/2 (-4 + 5 x - 3 x^2 - 20 x^3 + 73 x^4 - 78 x^5 + 27 x^6) y +
y^α (3 + 2 (-1 + x) y) sna(x))))
``````

and `sna(x)` is a real function of another variable `x` we do not care.

I just want `Collect` all powers of `y` – both integer and non-integer, so the final expression looks something like this

$$sum_ {n = 0} ^ {N} , a_n (x) , y ^ {n} + y ^ { alpha} , sum_ {k = 0} ^ {K} b_k (x) , y ^ k + y ^ {2 , alpha} , sum_ {j = 0} ^ {J} c_k (x) , y ^ k + …$$ and so on, depending on what is the highest multiple of $$alpha$$ in an exponent for some integers $$N$$. $$K$$. $$J$$,

I tried

``````Block({\$Assumptions = α > 0 && α ∈ Reals},
Collect(expr, y, Simplify))
``````

and

``````Block({\$Assumptions = α > 0 && α ∈ Reals},
Collect(expr, {y, y^α}, Simplify))
``````

but they do not work.