Not sure about my argument - but a plausible explanation (after reading Mastering RegEx on the mechanics of ex proc ..)
is that your second choice with the `|' OR part actually needs to do backtracking i.e. regex tries to match the first expression and if it has to do that, it follows through your first choice, looks for a match, backtracks, takes your 2nd choice and looks for a match and so on. Since the backtracking is absent for the choices on three separate lines, I would think that would explain the speed... my 2 cents :-)
Update: I am wrong after all ... nonetheless, testing your expression against your first two choices might mean the same speed the last one with the + sign might be the cause of the latency in the chain. If I see the string, I might be able to experiment with it to shed more light.