So I am messing around with making schemas for various files, such as the CoreRaceConfigs.xml and the Sovereign/unit xml files as well. I figured it would be a good idea to put restrictions in the schema so I can validate the data later on. I'm working on the regex for the colors (UnitSkinColor, UnitHairColor,BuildingPrimaryColor, etc.) which has your basic format of R,G,B (i.e. 155,210,32). No problems there.
The issue I am having is that sometimes there is a fourth value, which I am going to assume is the opacity/alpha. It is always 255 when I find it (i.e 155,210,32,255), but there is no set node that it is necessarily on. Meaning one faction may have that 4th value at 255 in CoreRaceConfigs at UnitClothing1Color while another may not. None of the color pickers either in game or the toolbox have an opacity function, so I wonder where this 4th value is coming from, and more importantly, can I just ignore it?
Edit: Nevermind, I just wrote the regex to accept either 3 or 4 values there. Amazing what a pair of parentheses and a question mark can do 
I am curious about whether or not that 4th value is actually needed in some places and if so where and why. This is becoming quite the learning experience for me.