The following fails in the patterns macro library:
(note that pat.endZeroOrMorePat should really be pat.endZeroOrOnePat).
program t;
#include( "stdlib.hhf" )
procedure doMatch;
begin doMatch;
stdout.put( "entered doMatch, ebp=", ebp, nl );
pat.match( "Hello World" )
pat.oneChar( 'H' );
pat.zeroOrOnePat
pat.oneCset( {'e', 'l'} );
pat.endZeroOrMorePat; // Wrong name
pat.matchStr( "ello " );
stdout.put( "Succeeded!" nl );
pat.if_failure;
stdout.put( "Did not match" nl );
pat.endmatch;
stdout.put( "exiting doMatch, ebp=", ebp, nl );
end doMatch;
begin t;
doMatch();
stdout.put( "done" nl );
end t;