The updatePragma util function fails on valid pragmas, namely those that specify upper and lower bounds, such as Solarray.
I believe /pragma\s+solidity\s+((\^|~|>|>=|<|<=)?(\d+\.\d+\.\d+\s?)){1,2}\s*;/ should cover up to two bounds as well as extra whitespace before the semicolon (i.e., not run through a linter, but semantically correct Solidity).
The updatePragma util function fails on valid pragmas, namely those that specify upper and lower bounds, such as Solarray.
I believe
/pragma\s+solidity\s+((\^|~|>|>=|<|<=)?(\d+\.\d+\.\d+\s?)){1,2}\s*;/
should cover up to two bounds as well as extra whitespace before the semicolon (i.e., not run through a linter, but semantically correct Solidity).