The 'at least one' quantifier
+ is *'s stricter sibling. Same idea — repeat the previous element — but the minimum is 1, not 0. \d+ matches "one or more digits." \d* matches "zero or more digits." That single difference changes everything when you're validating input.
Pattern a+ matches a, aa, aaa... but NOT the empty string. Pattern \s+ matches one or more whitespace characters; if there's no whitespace, no match.
The default for 'a real value here'
Whenever you mean "there should be content here," reach for + instead of *. The most common production bug from * is accepting empty input. + prevents it for free.
Same syntax rules as *
+ binds to the immediately preceding element, exactly like *. ab+ repeats only b. (ab)+ repeats the whole group.