It is indeed a bug. I could reproduce the issue, analyzed it further with various versions of UltraEdit and sent an issue report by email to UltraEdit support as it can be seen below.
It looks like a regular expression find upwards using one of the two legacy regular expression engines is done rarely by UltraEdit/UEStudio users because of this bug exists undiscovered already for more than thirteen years.
There is an UltraEdit and Unix regular expression find issue on running the find upwards from UltraEdit for Windows v16.00.0.1025 up to currently latest v2023.0.0.50.
The steps to reproduce are as follows:
- Create a new file with the line:
It does not matter if this line has also a line termination with carriage return and line-feed or not. It is important that the caret is positioned at end of this line.
- Press Alt+F3 to open the Find window and enter [0-9] as expression.
- Check the option Regular expressions and select either UltraEdit or Unix as regular expression engine to use for finding a single digit.
- Click on button Previous to run the UltraEdit/Unix regular expression find upwards from current caret position at the end of the line.
There should be found and selected first the character
1 at the end of the line. But there is found and selected the character
0 before the last digit left to the caret on running the regular expression find.
This legacy regular expression find upwards issue does not exist with UltraEdit for Windows v15.20.0.1027 and former versions which all find the character
1 at end of the line on running same UltraEdit/Unix regular expression find from the end of the line in upwards direction.
This issue is also not reproducible with any version of UltraEdit on using the Perl regular expression engine. The wrong search behavior exists only with the UltraEdit or Unix regular expression engine.
The same issue exists also on appending one more digit like
2 to the line.
Positioning the caret left to digit
2 with text cursor blinking between the digits
1 and
2 and running the same UltraEdit/Unix regular expression find for a single digit upwards with a click on button
Previous results in finding the digit
0 instead of the digit
1.