Retina 0.8.2, 201 9292 91 bytes
.+
$*
^((^1|11\2)+)?*?)((1(?(4)1\4))+)?*?)((1(?(6)1\6))+)?*?)((1(?(8)1\8))+)$
$.17 $.35 $.53 $.71
^+` +0$
Try it online!Try it online! Link includes test cases. Explanation:
.+
$*
Convert to unary.
^((^1|11\2)+)?*?)((1(?(4)1\4))+)?*?)((1(?(6)1\6))+)?*?)((1(?(8)1\8))+)$
Try to match 43 squares greedilylazily, plus a 4th square (greedily, since that's golfier). This is based on my answer to Three triangular numbers but adjusted to match squares instead. (I'm not sure where the original square matching pattern was devised but Retina's entry in the Showcase of Languages has it.) The lazy matching of the first three squares are lazily quantified so as to match as fewgenerates the squares in ascending order, with the first squares as low as possible (preferably zero).
$.17 $.35 $.53 $.71
List the matched squares in descending order.
^+` +0$
Delete any leadingtrailing zeros.