Thanks for your help folks. Daryl, your suggestions were good for a small number of file patterns but unfortunately I have some jobs that are looking for over 70 patterns.
In the end I went with a script that enumerates a list of patterns in a variable and looks for a match in the directory.
This is it below in case anyone is faced with the same problem or would like to critique :)
:PRINT "Searching in &PATH#"
:SET &FILE_COUNT# = 0
:SET &FILE_FOUND# = 0
!Get the list of expected files
:SET &HND#=PREP_PROCESS_VAR(&FILE_LIST#)
!Get the list of files in the search directory
:SET &FILE_HND# = PREP_PROCESS_FILENAME("&HOST#","&PATH#*","Y",,,,"UC_LOGIN=CLIENT_FI.LOGIN.BATCH.ACCOUNT")
!Loop through the expected files
:PROCESS &HND#
: SET &FILE_COUNT# = ADD(&FILE_COUNT#,1)
: SET &VK# = GET_PROCESS_LINE(&HND#,1)
: SET &VK# = STR_CAT(&PATH#, &VK#)
: PRINT ""
: PRINT "Looking for: &VK#"
! Loop through the files looking for a match
: PROCESS &FILE_HND#
: SET &FILE# = GET_PROCESS_LINE(&FILE_HND#,1)
: PRINT " Comparing: &FILE#"
: SET &VK# = CONV_UC(&VK#)
: SET &FILE# = CONV_UC(&FILE#)
: SET &RET# = STR_MATCH(&FILE#, &VK#)
! If found increment the counter and exit the loop
: IF &RET# = "Y"
: SET &FILE_FOUND# = ADD(&FILE_FOUND#,1)
: PRINT "Found &FILE#!!!"
: TERM_PROCESS
: ENDIF
: ENDPROCESS
:ENDPROCESS
:PRINT "Needed: &FILE_COUNT# Found &FILE_FOUND#"
:IF &FILE_COUNT# = &FILE_FOUND#
: SET &ACTOBJ# = ACTIVATE_UC_OBJECT(&JOB_TO_EXECUTE#)
: IF &ACTOBJ# = "0"
: SET &ERRNR# = SYS_LAST_ERR_NR()
: SET &ERRINS# = SYS_LAST_ERR_INS()
: SET &MESSAGE# = GET_MSG_TXT(&ERRNR#, &ERRINS#)
: ENDIF
!Deactivate this event if this is a single file watch
: IF &END_ON_FIRST_HIT# = "Y"
: SET &JOBNR# = SYS_ACT_PARENT_NR()
: SET &STATUS# = CANCEL_UC_OBJECT(&JOBNR#)
: ENDIF
:ENDIF