RE2 does not allow for negative look back/ahead causes usability issues for prohibited files.
Summary
RE2 does not support negative look back/look ahead causes issue with existing RegEx before upgrades. It also causes difficult situations for allowing one file and not others.
Steps to reproduce
Create a push rule for Prohibited file names with negative look back. Example: ^(?!(?:./)?src/test/resources(?:/|))(?!.*gradle-wrapper\.jar)..(?:jar|exe|a|ar|cpio|shar|iso|LBR|lbr|mar|sbx|tar|bz2|F|gz|lz|lzma|lzo|rz|sfark|sz|xz|z|Z|7z|s7z|ace|afa|alz|apk|arc|arj|b1|ba|bh|cab|car|cfs|cpt|dar|dd|dgc|dmg|ear|gca|ha|hki|ice|kgb|lzh|lha|lzx|pak|partimg|paq6|paq7|paq8|pea|pim|pit|qda|rar|rk|sda|sea|sen|sfx|shk|sit|sitx|sqx|tar.gz|tgz|tar.Z|tar.bz2|tbz2|tar.lzma|tlz|uc|uc0|uc2|ucn|ur2|ue2|uca|uha|war|wim|xar|xp3|yz1|zip|zipx|zoo|zpaq|zz|dll)$
What is the current bug behavior?
Perl error when the regex is saved. If the regex existed in a prior version, unable to change the regex.
What is the expected correct behavior?
Allow for negative look back/look ahead
Possible fixes
Change back from RE2 to Ruby Regex
Have whitelist and blacklist regex boxes. Whitelist overrides blacklist.
Example: Allowed File Names Prohibited File Names
Reject files from prohibited list unless in allows list.