self._re_distribute_keywords=re.compile(r'\b(?P<keyword>\S*:)(?P<content>.+?)\s*(?P<combination>and not | and | or | not )\s*(?P<last_content>[^:]*?)(?= and not | and | or | not |$)',re.IGNORECASE)
# regular expression that matches author patterns
self._re_author_match=re.compile(r'\bauthor:\s*(?P<name>.+?)\s*(?= and not | and | or | not |$)',re.IGNORECASE)
# regular expression that matches exact author patterns
# the group defined in this regular expression is used in method
# in case of changes correct also the code in this method
self._re_exact_author_match=re.compile(r'\bexactauthor:(?P<author_name>[^\'\"].*?[^\'\"]\b)(?= and not | and | or | not |$)',re.IGNORECASE)
# regular expression that matches search term, its content (words that
# are searched) and the operator preceding the term. In case that the
# names of the groups defined in the expression are changed, the
# chagned should be reflected in the code that use it.
self._re_search_term_pattern_match=re.compile(r'\b(?P<combine_operator>find|and|or|not)\s+(?P<search_term>title:|keyword:|fulltext:)(?P<search_content>.+?)(?= and not | and | or | not |$)',re.IGNORECASE)
# regular expression matching date after pattern
self._re_date_after_match=re.compile(r'\b(?P<searchop>d|date|dupd|dadd|da|date-added|du|date-updated)\b\s*(after|>)\s*(?P<search_content>.+?)(?= and not | and | or | not |$)',re.IGNORECASE)
# regular expression matching date after pattern
self._re_date_before_match=re.compile(r'\b(?P<searchop>d|date|dupd|dadd|da|date-added|du|date-updated)\b\s*(before|<)\s*(?P<search_content>.+?)(?= and not | and | or | not |$)',re.IGNORECASE)
# regular expression that matches date searches which have been
# keyword-substituted
#self._re_keysubbed_date_expr = re.compile(r'\b(?P<term>(' + self._DATE_ADDED_FIELD + ')|(' + self._DATE_UPDATED_FIELD + ')|(' + self._DATE_FIELD + '))\s*(?P<content>.+)(?= and not | and | or | not |$)', re.IGNORECASE)
self._re_keysubbed_date_expr=re.compile(r'\b(?P<term>('+self._DATE_ADDED_FIELD+')|('+self._DATE_UPDATED_FIELD+')|('+self._DATE_FIELD+'))(?P<content>.+?)(?= and not | and | or | not |$)',re.IGNORECASE)
# for finding (and changing) a variety of different SPIRES search keywords