Wie bekomme ich den ersten Buchstaben jedes Wortes mit Regex in PHP

Ich habe eine Zeichenkettenvariable und möchte den ersten Buchstaben jedes Wortes davon erhalten. Ich möchte, dass das Endergebnis eine Reihe von Anfangsbuchstaben ist.

$language = 'Sample Language';
preg_match('/(\b[a-z])+/i', $language, $match);
print_r($match);

Was ich bekomme, ist nur der erste Buchstabe des ersten Wortes. Das obige druckt Array ([0] => S [1] => S)

Wenn ich es ändere

preg_match('/(\bL)+/i', $language, $match);

Ich kann ein Match für das L des zweiten Wortes bekommen. Nach dem ersten Match hört es also offensichtlich auf, nach dem Rest zu suchen. Ich bin nicht sehr gut mit regulären Ausdrücken. Kann jemand darauf hinweisen, was ich falsch gemacht habe?

Wörter in der Eingabezeichenfolge werden nicht immer durch Leerzeichen getrennt. Es ist ziemlich unvorhersehbar. Einige Formate, auf die ich gestoßen bin: "Hauptsprache: Sprache" "Hauptsprache, Sprache" "Hauptsprache: Sprache-Untersprache" hier möchte ich M, L und S bekommen