I'm not sure I understand why. * is 0 or more times, + is 1 or more times. As far as I could test, it made no difference in this case. If that's supposed to be a "+", shouldn't ((\d+)% *) be ((\d+)% +) as well?