Wyrażenia i kwantyfikatory to zupełnie inne rzeczy w wyrażeniach regularnych.
Pojedynczy znak np a, s, 9, x znaczą dokładnie to co przedstawiają, czyli as9 matchuje dokładnie as9.
Wyrażenia specjalne takie jak \s albo \d znaczą "dowolny whitespace" albo "dowolna cyfra". Czyli np \d zmatchuje 9 ale zmatchuje też 8 albo 0. "Dowolny whitespace" to spacja, enter albo tab. Kropka . matchuje każdy znak.
Kwantyfikatory, np +, ?, *, {10}, {3,14} określają ile raz poprzedzające je wyrażenie może się pojawić.
Czyli np a{10} matchuje tylko wyrażenie aaaaaaaaaa (10 razy a). Podobnie jak a{4,10} pasuje do ilości liter a od 4ech do 10.
Wyrażenie a* oznacza dowolną ilość liter a (również zero tych liter, czyli pusty string). Ciąg a+b? oznacza "jeden lub więcej znaków a" oraz "jeden lub zero znaków b".
Wracając do Twojego pytania, \s* znaczy dowolna ilość whitespaców (dlatego że \s znaczy dowolny whitespace (enter/tab/spacja) a * znaczy dowolna ilość tych znaków). Za to sama spacja i gwiazdka, czyli * znaczy "dowolna ilość spacji".