Steve,
On its own, as you have used it, there IS little value in it. However hen it is sued in combination with other things,then it is very useful.
For example, in answering a question in the 'Construction' forum here, I used the following sub-pattern:
(?!.*?\d)
The situation was that the poster wanted to make sure that there was at least one digit in the text (this was a password validation if I remember). Of course, the digit was allowed to be anywhere in the string and so I needed a mechanism, to skip over any non-digit characters there may have been - hence the use of the '.*?' part. However, what if the digit was the first character in the string which was perfectly legitimate according to the validation rules involved. By using the '*' quantifier, I allowed there to be 0 matches of the '.'
Another example may be matching a telephone number where there may be optional spaces between the digit groups (i.e. 9876 5432 or 98765432). The pattern
\d{4}\s*\d{4}
will match either form by allowing 0 or more of the preceding 'space' item.
There is one subtle point that can arise when you make up a complete pattern that (in effect) can be blank - something like the somewhat artificial example:
[a-z]*\d*
where the intent is to allow 0 or more alphabetic characters followed by 0 or more digits. While it will match "asd123" and "asd" and "123" it will also match "" - probably not what was actually wanted. It is surprisingly easy to end up with something like this when you are dealing with complex matching rules.
Make sense?
Susan