Регулярные выражения - разделить строку и добавить слова в ArrayList

В переменную s передаётся строка из слов разделённых табуляцией, пробелами и разными символами. Код снизу помогает разделить это строку на слова и вывести на экран, но мне нужно добавить все эти слова в коллекцию ArrayList, я не очень понимаю в регулярных выражениях и не очень понимаю как получить коллекцию из слов на которые разделяет строку этот код? Я нашёл метод collect, но не понимаю как с помощью него получить эту коллекцию для работы с ней как с обычной?

String s = "На дворе — трава, на траве — дрова. Не руби дрова на траве двора!"
    Stream.of(s.split("[^A-Za-zА-Яа-я]+"))
            .map(String::toLowerCase)
            .sorted()
            .forEach(System.out::println);

Ответы (1 шт):

Автор решения: Qwertiy
var list = Stream.of(s.split("[^A-Za-zА-ЯЁа-яё]+"))
                 .filter(x -> x.length() != 0)
                 .map(String::toLowerCase)
                 .distinct()
                 .collect(Collectors.toList())
→ Ссылка