delayed evaluation for match operator