In UE 12.00+3, the following Function String will find certain C++ methods, class methods with the class name separated by the ::
/Function String = "%[ ^t]++[a-zA-Z_0-9*]+[ ^t]+^([a-zA-Z_0-9]+::[a-zA-Z_0-9^~]+[ ^t^p]++([^p*&, ^t^[^]/*^-'=:&a-zA-Z_0-9./(!]++)^)[~;]"
Will find: Classname::methodname()
It occurred to me that there might be leading or trailing whitespace around the :: so I changed :: to:
[ ^t]++::[ ^t]++
It seriously broke things!
Lots of experimenting showed [ ]++:: also doesn't work, but removing the squared brackets will detect leading blanks before the ::
^t++:: will work for leading tabs
What's going on? Is it yet another bug in Regular Expression processing?
Is it possible to add generalised whitespace around the :: in any way?
There is no such thing as an inconsistently correct system...
Therefore, aim for consistency; in the expectation of reaching correctness!