# Is not a hard coded (word) and does not end with any non word characters or capitals (assuming camel)

DEFAULT_YML_CONFIG_FILE = 'env.yml'

SEPARATORS = r'\(\)\{\}\[\]<>.()_\-'
REGEX_SINGLE_PARENTHESIS = r'(\()|(\))'
REGEX_PARENTHESIS = r'([\(\)]+)'
REGEX_BRACKETS = r'([\{\}]+)'
REGEX_STATIC_TOKEN = r'(\(\w+\))'
REGEX_BRACKET_TOKEN = r'(\{\w+\})'
REGEX_TOKEN_SEARCH = r'(?P<token>((?<![a-z\(\)]){TOKEN}(?![0-9]))|((?<=[a-z_\(\)]){TOKEN_CAPITALIZED}(?![0-9])))'
REGEX_ADJACENT_UNDERSCORE = r'(^[\W_]+)|([\W_]+$)'
REGEX_SINGLE_LETTER = r'[a-zA-Z]'
REGEX_TOKEN = r'[A-Za-z0-9][^A-Z\W{SEP}]+'.format(SEP=SEPARATORS)

FORMAT_STRING_REGEX = r'(?:{STATIC})|({TOKEN})|{CHAR}'.format(STATIC=REGEX_STATIC_TOKEN,
                                                              TOKEN=REGEX_TOKEN,
                                                              CHAR=REGEX_SINGLE_LETTER)
