I have just fixed my 2002 Astra whose battery was not charging. I had replaced the voltage regulator in the alternator 3 years prior after it failed suddenly with the red battery dash light coming on and power steering disabled. This time there was no warning, everything running fine until it refused to start in the parking lot of a supermarket. Fortunately there was a car parts place within walking distance so was able to replace the battery without needing a tow. I assumed the battery had died as it was 5 years old. New battery lasted 4 days before I noticed the engine wasn't turning over as strongly when starting up. Multimeter confirmed that the battery was not charging normally, only showing 12.2V with the engine running. Placing the multimeter on the alternator nut connecting to the battery registered 5V which didn't make any sense. With the engine off there was a 10ohm resistance between the alternator nut and the battery positive but 0.1 ohm when I put the lead on the cable lug immediately next to it. Unbolted the cable and checked the nut and washer and they were completely rusted. Cleaned all the rust off with steel wool and reconnected everything up and problem solved. Now showing 14.3V with the engine running and no problems with starting.
I suspect the problem lies with the fact that the lug crimped to the cable that attaches to the alternator looks like it is made of brass so probably encourages galvanic corrosion with the steel nut and washer. Because the alternator was technically producing the correct voltage and supplying it without issue down the cable that supplies the dash light, no warning is provided when this fault occurs. This is a weird problem with an easy fix...hope this might help someone