Complex carbs the night before. Small amount of Protein morning of, along with a pancake or two with pure maple syrup. A lot of this depends on what you "define" as a race. If you are talking a 5K, Sprint Triathalon, or 25 mile bike ride, I just eat whatever as they aren't a big deal for me. I tune my nutrition a lot more as I get into 1/2's, and 50+ mile bike races.
Experiment on your long runs and brick workouts with what works. Then do that before Race day.
Varying theories on Carb loading. Most of the latest seems to point to 2 nights before. I usually try to eat earlier the night before. Then more of a chance I'll be hungry in the morning. Hungry enough to eat 2 packets of Instant Oatmeal.
Just be careful on the carb loading 36 hours or more beforehand because of weight increases from the carb loading . On my ultra I started loading around noon 2 days before the race
i ran 2 100 mile trail runs and some shorter races and i always began increasing my carb intake 2 days before the run with an emphasis on the evening prior. 2 big plates of pasta the evening before and a tall glass of water to "activate the carbs" and a bagel race morning. it's simple but that's what worked for me. like 2rocky said. experiment with long runs and you'll be dialed for race day. if your talking shorter distances (5k, spring tri, 10k) it's not as neccessary.