First change I would do to that schematic would be to use a transformer with at least two secondary windings, and use a relay or something to change between winding lengths depending on your output voltage.
For example, have 2 x 15-18v AC secondary windings - if you want 0...12v , connect just one secondary winding, if you want 12...24 / 30v enable the relay to connect the second winding.
This way you'd drop less on the transistors and dissipate less, produce less heat etc.
Could also take it the next step with two independent secondary windings - parallel them for half voltage , double current or series them for full voltage, regular current value.
Toroidal transformers with 12v / 15v/ 18v AC secondary windings are more common and cheap.
Also, no 1000uF capacitors on input, go for 3300-5600uF 63v capacitors, something like that. Whatever's sweetspot capacitance vs price. Can go with 85v rated capacitors as you're dealing with 100-120 Hz DC, not high frequency/very low esr switching power supply requirements.