In one case you are iterating the String in a loop and adding all the group()s to a List: easy enough with Java5‑style code. With the input you showed, you are going to run the loop thrice and get a three‑element List.
In the other case, you are starting with one object (
Stream.of) and then calling a method of Matcher. All the methods of Matcher I could find return one thing, and none returns a String[] or anything like that. The group() method returns a String, one only, so, after using that, you are going to get a one‑element Stream downstream from there.
If however you do what you say you are doing, namely split the String, you can get a String[]: look at the return value for
this method. You will of course require a different regex.
It might be possible to create multiple Streams in a loop and then concatenate them with a method of Stream, but I think that is going to produce some very strange‑looking code.