No, it will stop after the first one it finds. It returns "true: the pattern did match something in the sting" or "false: there wasn't a match".
To be precise: it starts matching as soon as it possibly can, and then for as long as it possibly can. That's why searching for "<b>.*</b>" to find bold text will likely fail - it will match the first <b> in the text, and continue on for as long as possible - up to the very last </b> in the text - all in a single match.
If you want to find all the occurrences of a pattern, see the manual regarding the use of preg_match_all(). In fact, I use the preg_* functions exclusively: they're faster-running and the syntax is more convenient - not necessarily more powerful, but certainly more convenient. And as a bonus, the manual contains a couple of sections on their regexp syntax.