Function `ExecRegExpr` in unit `uregexpr` will not parse some complicated regex patterns correctly, such as a UUID pattern.
## Summary Function `ExecRegExpr` in unit `uregexpr` can't recognize a correct UUID string such as `1f20d5ba-3618-432e-9ba6-f050dc12602d` with a correct UUID pattern string such as `^[\da-f]{8}(-[\da-f]{4}){3}-[\da-f]{12}$` or `^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$` on AARCH64 platform such as Apple M1 Ultra CPU. However, it behaves normally at least on x86-64 platform. ## System Information <!-- The more information are provided the easier it is to replicate the bug --> - **Operating system:** MacOS 14.6.1 (Sonoma) <!-- Windows, Linux (if possible, also name the distro), FreeBSD, Android, ... --> - **Processor architecture:** AARCH64 <!-- x86, x86-64, ARM, AARCH64, AVR, RISC-V, PowerPC, ... --> - **Compiler version:** trunk, stable, 3.2.2, fixes, and fixes-3.2 <!-- 3.2, 3.2.2, 3.3, trunk, beta, ... (if possible, give also the git hash) --> - **Device:** Computer <!-- Computer, Tablet, Mobile, Amiga, Microcontroller, ... --> ## Steps to reproduce 1. Open Lazarus, create a GUI Application. 2. Put a button named Button1 on Form1. 3. Double click Button1 and add the code below: ```pascal Procedure TForm1.Button1Click(Sender: TObject); Begin If ExecRegExpr('^[\da-f]{8}(-[\da-f]{4}){3}-[\da-f]{12}$', '1f20d5ba-3618-432e-9ba6-f050dc12602d') Then ShowMessage('1: Match') Else ShowMessage('1: Not match'); If ExecRegExpr('^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$', '1f20d5ba-3618-432e-9ba6-f050dc12602d') Then ShowMessage('2: Match') Else ShowMessage('2: Not match'); End; ``` 4. Compile and run the application. 5. Click Button1. ## Example Project <!-- If possible, please create an example project that exhibits the problematic behavior, and link to it here in the bug report. --> ## What is the current bug behavior? <!-- What actually happens --> - For the first message box, it says: `1: Not match`. - For the second message box, it says: `2: Not match`. ## What is the expected (correct) behavior? <!-- What you should see instead --> - For the first message box, it should say: `1: Match`. - For the second message box, it should say: `2: Match`. ## Relevant logs and/or screenshots <!-- Paste any relevant logs - please use code blocks (```) to format console output, logs, and code, as it's very hard to read otherwise. You can also use syntax highlighting for Pascal with: ```pascal the code``` For more information see https://docs.gitlab.com/ee/user/markdown.html --> ## Possible fixes <!-- If you can, link to the line of code that might be responsible for the problem -->
issue