|
According to the SQL manual, the source string and pattern string are both cast to UTF-16:
"source-string
An expression that specifies the string in which the search is to take place. The
expression must return a value that is a built-in character string, graphic string,
numeric, or datetime data type. If the value is not a UTF-16 DBCLOB, it is
implicitly cast to a UTF-16 DBCLOB before searching for the regular expression
pattern."
Also, according to this https://www.regular-expressions.info/charclass.html "Hyphens at other positions in character classes where they can’t form a range may be interpreted as literals or as errors. Regex flavors are quite inconsistent about this."
Tim.
________________________________
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of Arnie Flangehead <arnie.flangehead@xxxxxxxxx>
Sent: 16 August 2021 08:05
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: REGEXP_INSTR range
I think because the source-string being submitted for evaluation is in
ASCII hex instead of EBCDIC hex.
So, tell it '-' and it sees 2d not 60, and 2d is in the range 00 to 3f.
The manual should warn about it, but in a way it makes sense - I presume
they didn't write a regex processor from scratch but rather "ported" (if
that's the word) one they had from their non-EBCDIC products.
Question is: Can some setting change that behavior? I have no idea.
On Mon, Aug 16, 2021 at 6:50 PM Peter Dow <petercdow@xxxxxxxxx> wrote:
Thanks for pointing that out John! I guess I can't count :(--
So they're both wrong! Why is REGEXP_INSTR finding a hyphen in the
range x'00' - x'3F' when a hyphen (in EBCDIC) is x'60'?
On 8/15/2021 5:56 PM, John Yeung wrote:
On Sun, Aug 15, 2021 at 6:33 PM Peter Dow <petercdow@xxxxxxxxx> wrote:--
values regexp_instr('abcdef-ghijk' || x'3f', '[\x00-\x3f]') returns 7,Why did you expect to find the hyphen in the first example but not in
which is what I expected.
values regexp_instr('- - - - - - - - - - -', '[\x00-\x3F]') returns 1,
which is NOT what I expected.
the second?
John Y.
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.