Compiling REx "\b(\w+)=(?|(\w+),(\d+)|(\d+);(\w+))\b" Freeing REx: "\b(\w+)=(?|(\w+),(\d+)|(\d+);(\w+))\b" Final program: 1: BOUNDU (2) 2: OPEN1 (4) 4: PLUS (6) 5: POSIXU[\w] (0) 6: CLOSE1 (8) 8: EXACT <=> (10) 10: BRANCH (buf:1/3) (26) 12: OPEN2 (14) 14: PLUS (16) 15: POSIXU[\w] (0) 16: CLOSE2 (18) 18: EXACT <,> (20) 20: OPEN3 (22) 22: PLUS (24) 23: POSIXU[\d] (0) 24: CLOSE3 (43) 26: BRANCH (buf:3/5) (FAIL) 28: OPEN2/4 (30) 30: PLUS (32) 31: POSIXU[\d] (0) 32: CLOSE2/4 (34) 34: EXACT <;> (36) 36: OPEN3/5 (38) 38: PLUS (40) 39: POSIXU[\w] (0) 40: CLOSE3/5 (43) 42: TAIL (43) 43: BOUNDU (44) 44: END (0) floating "=" at 1..9223372036854775807 (checking floating) stclass BOUNDU minlen 5 Matching REx "\b(\w+)=(?|(\w+),(\d+)|(\d+);(\w+))\b" against "aa=AA,123 bb=123;dd" Intuit: trying to determine minimum start position... doing 'check' fbm scan, [1..16] gave 2 Found floating substr "=" at offset 2 (rx_origin now 0)... (multiline anchor test skipped) looking for class: start_shift: 1 check_at: 2 rx_origin: 0 endpos: 2 Does not contradict STCLASS... Intuit: Successfully guessed: match at offset 0 Matching stclass BOUNDU against "aa=AA,123 bb=12" (15 bytes) 0 <> | 0| 1:BOUNDU(2) 0 <> | 0| 2:OPEN1(4) 0 <> | 0| 4:PLUS(6) | 0| POSIXU[\w] can match 2 times out of 2147483647... 2 <=AA,123 bb> | 1| 6:CLOSE1(8) 2 <=AA,123 bb> | 1| 8:EXACT <=>(10) 3 | 1| 10:BRANCH (buf:1/3)(26) 3 | 2| 12:OPEN2(14) 3 | 2| 14:PLUS(16) | 2| POSIXU[\w] can match 2 times out of 2147483647... 5 <,123 bb=12> | 3| 16:CLOSE2(18) 5 <,123 bb=12> | 3| 18:EXACT <,>(20) 6 <123 bb=123> | 3| 20:OPEN3(22) 6 <123 bb=123> | 3| 22:PLUS(24) | 3| POSIXU[\d] can match 3 times out of 2147483647... 9 < bb=123;dd> | 4| 24:CLOSE3(43) 9 < bb=123;dd> | 4| 43:BOUNDU(44) 9 < bb=123;dd> | 4| 44:END(0) Match successful! ("aa", "AA", "123") Matching REx "\b(\w+)=(?|(\w+),(\d+)|(\d+);(\w+))\b" against " bb=123;dd" Intuit: trying to determine minimum start position... doing 'check' fbm scan, [10..16] gave 12 Found floating substr "=" at offset 12 (rx_origin now 9)... (multiline anchor test skipped) looking for class: start_shift: 1 check_at: 12 rx_origin: 9 endpos: 12 Does not contradict STCLASS... Intuit: Successfully guessed: match at offset 9 Matching stclass BOUNDU against " bb=12" (6 bytes) 9 < bb=123;dd> | 0| 1:BOUNDU(2) 9 < bb=123;dd> | 0| 2:OPEN1(4) 9 < bb=123;dd> | 0| 4:PLUS(6) | 0| POSIXU[\w] can match 0 times out of 2147483647... | 0| failed... 10 <,123 > | 0| 1:BOUNDU(2) 10 <,123 > | 0| 2:OPEN1(4) 10 <,123 > | 0| 4:PLUS(6) | 0| POSIXU[\w] can match 2 times out of 2147483647... 12 <23 bb> <=123;dd> | 1| 6:CLOSE1(8) 12 <23 bb> <=123;dd> | 1| 8:EXACT <=>(10) 13 <23 bb=> <123;dd> | 1| 10:BRANCH (buf:1/3)(26) 13 <23 bb=> <123;dd> | 2| 12:OPEN2(14) 13 <23 bb=> <123;dd> | 2| 14:PLUS(16) | 2| POSIXU[\w] can match 3 times out of 2147483647... | 2| failed... 13 <23 bb=> <123;dd> | 1| 26:BRANCH (buf:3/5)(42) 13 <23 bb=> <123;dd> | 2| 28:OPEN2/4(30) 13 <23 bb=> <123;dd> | 2| 30:PLUS(32) | 2| POSIXU[\d] can match 3 times out of 2147483647... 16 <23 bb=123> <;dd> | 3| 32:CLOSE2/4(34) 16 <23 bb=123> <;dd> | 3| 34:EXACT <;>(36) 17 <23 bb=123;>
| 3| 36:OPEN3/5(38) 17 <23 bb=123;>
| 3| 38:PLUS(40) | 3| POSIXU[\w] can match 2 times out of 2147483647... 19 <23 bb=123;dd> <> | 4| 40:CLOSE3/5(43) 19 <23 bb=123;dd> <> | 4| 43:BOUNDU(44) 19 <23 bb=123;dd> <> | 4| 44:END(0) Match successful! ("bb", "123", "dd") Matching REx "\b(\w+)=(?|(\w+),(\d+)|(\d+);(\w+))\b" against "" Regex match can't succeed, so not even tried Matching REx "\b(\w+)=(?|(\w+),(\d+)|(\d+);(\w+))\b" against "aa=AA,123 bb=123;dd" Intuit: trying to determine minimum start position... doing 'check' fbm scan, [1..16] gave 2 Found floating substr "=" at offset 2 (rx_origin now 0)... (multiline anchor test skipped) looking for class: start_shift: 1 check_at: 2 rx_origin: 0 endpos: 2 Does not contradict STCLASS... Intuit: Successfully guessed: match at offset 0 Matching stclass BOUNDU against "aa=AA,123 bb=12" (15 bytes) 0 <> | 0| 1:BOUNDU(2) 0 <> | 0| 2:OPEN1(4) 0 <> | 0| 4:PLUS(6) | 0| POSIXU[\w] can match 2 times out of 2147483647... 2 <=AA,123 bb> | 1| 6:CLOSE1(8) 2 <=AA,123 bb> | 1| 8:EXACT <=>(10) 3 | 1| 10:BRANCH (buf:1/3)(26) 3 | 2| 12:OPEN2(14) 3 | 2| 14:PLUS(16) | 2| POSIXU[\w] can match 2 times out of 2147483647... 5 <,123 bb=12> | 3| 16:CLOSE2(18) 5 <,123 bb=12> | 3| 18:EXACT <,>(20) 6 <123 bb=123> | 3| 20:OPEN3(22) 6 <123 bb=123> | 3| 22:PLUS(24) | 3| POSIXU[\d] can match 3 times out of 2147483647... 9 < bb=123;dd> | 4| 24:CLOSE3(43) 9 < bb=123;dd> | 4| 43:BOUNDU(44) 9 < bb=123;dd> | 4| 44:END(0) Match successful! Matching REx "\b(\w+)=(?|(\w+),(\d+)|(\d+);(\w+))\b" against " bb=123;dd" Intuit: trying to determine minimum start position... doing 'check' fbm scan, [10..16] gave 12 Found floating substr "=" at offset 12 (rx_origin now 9)... (multiline anchor test skipped) looking for class: start_shift: 1 check_at: 12 rx_origin: 9 endpos: 12 Does not contradict STCLASS... Intuit: Successfully guessed: match at offset 9 Matching stclass BOUNDU against " bb=12" (6 bytes) 9 < bb=123;dd> | 0| 1:BOUNDU(2) 9 < bb=123;dd> | 0| 2:OPEN1(4) 9 < bb=123;dd> | 0| 4:PLUS(6) | 0| POSIXU[\w] can match 0 times out of 2147483647... | 0| failed... 10 <,123 > | 0| 1:BOUNDU(2) 10 <,123 > | 0| 2:OPEN1(4) 10 <,123 > | 0| 4:PLUS(6) | 0| POSIXU[\w] can match 2 times out of 2147483647... 12 <23 bb> <=123;dd> | 1| 6:CLOSE1(8) 12 <23 bb> <=123;dd> | 1| 8:EXACT <=>(10) 13 <23 bb=> <123;dd> | 1| 10:BRANCH (buf:1/3)(26) 13 <23 bb=> <123;dd> | 2| 12:OPEN2(14) 13 <23 bb=> <123;dd> | 2| 14:PLUS(16) | 2| POSIXU[\w] can match 3 times out of 2147483647... | 2| failed... 13 <23 bb=> <123;dd> | 1| 26:BRANCH (buf:3/5)(42) 13 <23 bb=> <123;dd> | 2| 28:OPEN2/4(30) 13 <23 bb=> <123;dd> | 2| 30:PLUS(32) | 2| POSIXU[\d] can match 3 times out of 2147483647... 16 <23 bb=123> <;dd> | 3| 32:CLOSE2/4(34) 16 <23 bb=123> <;dd> | 3| 34:EXACT <;>(36) 17 <23 bb=123;>
| 3| 36:OPEN3/5(38) 17 <23 bb=123;>
| 3| 38:PLUS(40) | 3| POSIXU[\w] can match 2 times out of 2147483647... 19 <23 bb=123;dd> <> | 4| 40:CLOSE3/5(43) 19 <23 bb=123;dd> <> | 4| 43:BOUNDU(44) 19 <23 bb=123;dd> <> | 4| 44:END(0) Match successful! ("", "aa", "AA", "123", undef, undef, " ", "bb", undef, undef, "123", "dd") Freeing REx: "\b(\w+)=(?|(\w+),(\d+)|(\d+);(\w+))\b"