() : Match the regular expression below and capture its match into backreference number 1
(?:) : Match the regular expression below
(?!) : Assert that it is impossible to match the regex below starting at this position (negative lookahead)
(?=) : Assert that the regex below can be matched, starting at this position (positive lookahead)