Although I am far too lazy to check with my oreilly right now I would hazard a guess that ".*" is the crucial point.
Matching something like "chr.*?\s" should be fairly easy. Discard anything that does not look like "chr" if you find something that looks like it. See if the next thing is a \s else get whatever it is and look if the thing after that thing is a \s.
In comparison looking for ".*" is more expensive as that .* tries to grap as much as possible and it has to play through all the possible combinations to see if it cann match something more.
It could be summarized like "Matching greedy things is more expensive than matching non greedy things"
Is that understandable (I do hope it is right somewhat ;) ?
Regards
Hexren