subroutine mymatch(expression,string,expected)
character(len=*),intent(in) :: expression
character(len=*),intent(in) :: string
logical,intent(in) :: expected
integer :: jj
logical :: answer
type(regex_pattern) :: p
jj=getpat(expression, p%pat)
if(jj .eq. ERR) then
write(*,'(*(g0,1x))').not.expected, 'illegal pattern for regex',expression, &
& 'and string',string,'expected',expected,'getpat=',jj
tally=[tally,.false.]
else
answer=match(string//char(10),p%pat).eq.YES
write(*,'(*(g0,1x))') answer .eqv. expected, 'for regex',expression,'and string',string, &
& 'expected',expected,'got',answer,'getpat=',jj
tally=[tally,answer.eqv.expected]
endif
end subroutine mymatch