As Ettore says matching for all occurrences in a string is hard with GREL - unfortunately 'match' simply doesn't do this.
Equally unfortunately 'split' doesn't preserve the characters you actually split on - so although you could split the strings where there was a series of 4 digits starting with 20 or 19, the result would be the rest of the string (which you don't want)
I think you can either:
Use repeated 'match' operations to extract potential years one at a time
Use the Jython approach described by Ettore
There are some other approaches I can think of, but they are all more complicated!
Owen