I've been looking for this for a bit. Basically, what I wanted was something as strong as bleach but also something that wouldn't take the color out of fabrics at all. What I found for it actually surprised me a little.
So what did I find? Well,
this stuff.
Yeah, that's right. That stuff Billy Mays was screaming at you to buy way back in the day. In essence, it's actually very basic. All it is is sodium percarbonate. You could easily make it at home by combining one parts hydrogen peroxide and baking soda with two parts of water. And the cheaper brands are just as good so you don't need to spend a lotta money on the brand name.
The only thing it doesn't seem great for, as a matter of fact, is getting out synthetic substances like motor oil or ink. But anyway, now you can use bleach without actually using bleach.