Configuration Information [Automatically generated, do not change]: Machine: aarch64 OS: linux-gnu Compiler: gcc Compilation CFLAGS: -O2 -ftree-vectorize -flto=auto -ffat-lto-objects -fexcepti\ ons -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY\ _SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-\ cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -ma\ rch=armv8.2-a+crypto -mtune=neoverse-n1 -mbranch-protection=standard -fasynchro\ nous-unwind-tables -fstack-clash-protection uname output: Linux i-062640626b26bd9ed.us-west-2.compute.internal 6.1.25-37.47\ .amzn2023.aarch64 #1 SMP Mon Apr 24 23:19:51 UTC 2023 aarch64 aarch64 aarch64 G\ NU/Linux Machine Type: aarch64-amazon-linux-gnu
Bash Version: 5.2 Patch Level: 15 Release Status: release Description: I found a case where the regex evaluator doesn't seem to be finding the longest possible match for a given expression. The expression works as expected on an older version of Bash (3.2.57(1)-release (arm64-apple-darwin22)). Here's the regex: ^(\$\'([^\']|\\\')*\')(.*)$ (FWIW, this is meant to capture a string that looks like an ANSI-style literal string, plus a "rest" for further processing.) Repeat-By: For example, run this: [[ $'$\'foo\\\' x\' bar' =~ ^(\$\'([^\']|\\\')*\')(.*)$ ]] && echo "${BASH_REMATCH[1]}" On v5.2, this prints: $'foo\' On v3.2.57, this prints: $'foo\' x'