That O'Reilly book is a good choice! I'm About 200 pages into it myself

I haven't even started using the regex info that I know (that comes in later chapters).
As for the expression, (from what I understand) the .* combo should match the username in all cases as long long as it starts and ends with that [ and ]. Even if it is greedy, it will still work. The regex will read in the rest of the line, and then backtrack one step at a time until it gets back to the ] after username. That simply means it's going to waste a lot of time going through and matching through to DC=com, and then backtrack one step at a time.
An alternative to making it lazy would simply be to use the expression
[^\]]*
It looks a bit strange at first, but this simply means match anything other than a closing square bracket, any number of times. It will simply read in the full user name and stop when it hits the closing square bracket, which is exactly what you want it to do. The backslash was used to cancel out the bracket so it is taken literally.