The colorizer does most of the grunt work, it tokenizes the regex and colors it properly. The explainer then basically just loops over those tokens and explain them. It's a bit hacked together as it works right now though; but it seems to do the trick. The explainer does some additional error-checking which the colorizer doesn't have enough resources to do as well. Anything in particular you want to know?