Вот тут ошибка;
if(Pattern.matches(regex, reader.nextLine()));
Str.add(reader.nextLine())
reader.nextLine() читает строку и переходит на следующую.
Т.е. вы читаете строку, анализируете ее, а добавляете уже следующюю (а там, видимо, ничего нет)
Нужно создать в цикле переименую в которую сохраняется строка и действия все производить уже с этой переменной.