support atom and string patterns