I found that one of the default error parsing expressions provided in the clean config, and also in my config, was triggering the 695 false positives in my build.
I also think that the reason I had 35 exclusions, built up over many many years, is because the default error parsing captured so many things that whenever I wanted to exclude anything I would quickly add it to exclusions, and over time I got to 35+ exclusions.
I never took the time until today to reexamine why I was getting so many false positives and adjust how error parsing is done. It was faster in the past to just add another exclusion.
I still think that SlickEdit has an issue because even when I turn off the exclusions, with 695 error markers there is quite a long pause before SE is usable again. But after performing my refinement of error parsing, it is no longer an issue for me personally anymore.
The problematic default error parsing is in the "default" Category and is the "def1". By turning this off, I got rid of my 695 false positives. However turning this off also excluded finding gcc errors and warnings that I would like to see.
SlickEdit may want to reconsider the default error parsing rules to not catch so many false positives.
So I made a much more restrictive error parser that doesn't have all the false positives, and now I only need 1 exclusion.
For gcc formatted errors I now use this:
^{#0?+}\:{#1:i}\:({#2:i}\::b|:b){#3(error\:|warning\:|undefined:breference|note\:)?+}$
It will match what gcc outputs in sample messages such as:
file:linenum:col: (error:|warning:|undefined reference|note:) message
or without the column
file:linenum: (error:|warning:|undefined reference|note:) message
By being this restrictive, I no longer need many of my exclusions for when timestamps were output to the build log, which had colon characters that created a false positive.
I added one restriction to exclude messages coming from our makefiles, which are overdue to be fixed, but it is not my responsibility. So I added 1 exclusion:
^(?+\.mk|Makefile)\::i\: warning\:
Which will exclude things like:
Makefile:linenum: warning: message
anyfile.mk:line: warning: message