If you really must use Streams API, keep it simple and use a stream of indexes:
int lastIdx = IntStream.range(0, tokens.size())
.filter(i -> tokens.get(i).toUpperCase().endsWith("STOP"))
.findFirst()
.orElse(-1);
List<String> myTokens = tokens.subList(0, lastIdx + 1);
Or make a new List
out of the sublist if you want an independent copy that’s not backed by the original list.