. . "I understand that ?! is to exclude a pattern, so for example a(?!b) means it will match a if a is not followed by b." . .