//
// Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
// This code is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License version 2 only, as
// published by the Free Software Foundation.
//
// This code is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
// version 2 for more details (a copy is included in the LICENSE file that
// accompanied this code).
//
// You should have received a copy of the GNU General Public License version
// 2 along with this work; if not, write to the Free Software Foundation,
// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
//
// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
// or visit www.oracle.com if you need additional information or have any
// questions.
//
//
// This file contains test cases for regular expressions.
// A test case consists of three lines:
// The first line is a pattern used in the test
// The second line is the input to search for the pattern in
// The third line is a concatentation of the match, the number of groups,
//     and the contents of the first four subexpressions.
// Empty lines and lines beginning with comment slashes are ignored.
//
// Test unsetting of backed off groups
^(a)?a
a
true a 1

^(aa(bb)?)+$
aabbaa
true aabbaa 2 aa bb

((a|b)?b)+
b
true b 2 b

(aaa)?aaa
aaa
true aaa 1

^(a(b)?)+$
aba
true aba 2 a b

^(a(b(c)?)?)?abc
abc
true abc 3

^(a(b(c))).*
abc
true abc 3 abc bc c

// use of x modifier
abc(?x)blah
abcblah
true abcblah 0

abc(?x)  blah
abcblah
true abcblah 0

abc(?x)  blah  blech
abcblahblech
true abcblahblech 0

abc(?x)  blah # ignore comment
abcblah
true abcblah 0

// Simple alternation
a|b
a
true a 0

a|b
z
false 0

a|b
b
true b 0

a|b|cd
cd
true cd 0

a|ad
ad
true a 0

z(a|ac)b
zacb
true zacb 1 ac

// Simple char class
[abc]+
ababab
true ababab 0

[abc]+
defg
false 0

[abc]+[def]+[ghi]+
zzzaaddggzzz
true aaddgg 0

// Range char class
[a-g]+
zzzggg
true ggg 0

[a-g]+
mmm
false 0

[a-]+
za-9z
true a- 0

[a-\\u4444]+
za-9z
true za 0

// Negated char class
[^abc]+
ababab
false 0

[^abc]+
aaabbbcccdefg
true defg 0

// Making sure a ^ not in first position matches literal ^
[abc^b]
b
true b 0

[abc^b]
^
true ^ 0

// Class union and intersection
[abc[def]]
b
true b 0

[abc[def]]
e
true e 0

[a-d[0-9][m-p]]
a
true a 0

[a-d[0-9][m-p]]
o
true o 0

[a-d[0-9][m-p]]
4
true 4 0

[a-d[0-9][m-p]]
e
false 0

[a-d[0-9][m-p]]
u
false 0

[[a-d][0-9][m-p]]
b
true b 0

[[a-d][0-9][m-p]]
z
false 0

[a-c[d-f[g-i]]]
a
true a 0

[a-c[d-f[g-i]]]
e
true e 0

[a-c[d-f[g-i]]]
h
true h 0

[a-c[d-f[g-i]]]
m
false 0

[a-c[d-f[g-i]]m]
m
true m 0

[abc[def]ghi]
a
true a 0

[abc[def]ghi]
d
true d 0

[abc[def]ghi]
h
true h 0

[abc[def]ghi]
w
false 0

[a-c&&[d-f]]
a
false 0

[a-c&&[d-f]]
e
false 0

[a-c&&[d-f]]
z
false 0

[[a-c]&&[d-f]]
a
false 0

[[a-c]&&[d-f]]
e
false 0

[[a-c]&&[d-f]]
z
false 0

[a-c&&d-f]
a
false 0

[a-m&&m-z]
m
true m 0

[a-m&&m-z&&a-c]
m
false 0

[a-m&&m-z&&a-z]
m
true m 0

[[a-m]&&[m-z]]
a
false 0

[[a-m]&&[m-z]]
m
true m 0

[[a-m]&&[m-z]]
z
false 0

[[a-m]&&[^a-c]]
a
false 0

[[a-m]&&[^a-c]]
d
true d 0

[a-m&&[^a-c]]
a
false 0

[a-m&&[^a-c]]
d
true d 0

[a-cd-f&&[d-f]]
a
false 0

[a-cd-f&&[d-f]]
e
true e 0

[[a-c]&&d-fa-c]
a
true a 0

[[a-c]&&[d-f][a-c]]
a
true a 0

[[a-c][d-f]&&abc]
a
true a 0

[[a-c][d-f]&&abc[def]]
e
true e 0

[[a-c]&&[b-d]&&[c-e]]
a
false 0

[[a-c]&&[b-d]&&[c-e]]
c
true c 0

[[a-c]&&[b-d][c-e]&&[u-z]]
c
false 0

[abc[^bcd]]
a
true a 0

[abc[^bcd]]
d
false 0

[a-c&&a-d&&a-eghi]
b
true b 0

[a-c&&a-d&&a-eghi]
g
false 0

[[a[b]]&&[b[a]]]
a
true a 0

[[a]&&[b][c][a]&&[^d]]
a
true a 0

[[a]&&[b][c][a]&&[^d]]
d
false 0

[[[a-d]&&[c-f]]]
a
false 0

[[[a-d]&&[c-f]]]
c
true c 0

[[[a-d]&&[c-f]]&&[c]]
c
true c 0

[[[a-d]&&[c-f]]&&[c]&&c]
c
true c 0

[[[a-d]&&[c-f]]&&[c]&&c&&c]
c
true c 0

[[[a-d]&&[c-f]]&&[c]&&c&&[cde]]
c
true c 0

[z[abc&&bcd]]
c
true c 0

[z[abc&&bcd]&&[u-z]]
z
true z 0

[x[abc&&bcd[z]]&&[u-z]]
z
false 0

[x[[wz]abc&&bcd[z]]&&[u-z]]
z
true z 0

[[abc]&&[def]abc]
a
true a 0

[[abc]&&[def]xyz[abc]]
a
true a 0

\pL
a
true a 0

\pL
7
false 0

\p{L}
a
true a 0

\p{LC}
a
true a 0

\p{LC}
A
true A 0

\p{IsL}
a
true a 0

\p{IsLC}
a
true a 0

\p{IsLC}
A
true A 0

\p{IsLC}
9
false 0

\P{IsLC}
9
true 9 0

// Guillemet left is initial quote punctuation
\p{Pi}
\u00ab
true \u00ab 0

\P{Pi}
\u00ac
true \u00ac 0

// Guillemet right is final quote punctuation
\p{IsPf}
\u00bb
true \u00bb 0

\p{P}
\u00bb
true \u00bb 0

\p{P}+
\u00bb
true \u00bb 0

\P{IsPf}
\u00bc
true \u00bc 0

\P{IsP}
\u00bc
true \u00bc 0

\p{L1}
\u00bc
true \u00bc 0

\p{L1}+
\u00bc
true \u00bc 0

\p{L1}
\u02bc
false 0

\p{ASCII}
a
true a 0

\p{IsASCII}
a
true a 0

\p{IsASCII}
\u0370
false 0

\pLbc
abc
true abc 0

a[r\p{InGreek}]c
a\u0370c
true a\u0370c 0

a\p{InGreek}
a\u0370
true a\u0370 0

a\P{InGreek}
a\u0370
false 0

a\P{InGreek}
ab
true ab 0

a{^InGreek}
-
error

a\p{^InGreek}
-
error

a\P{^InGreek}
-
error

a\p{InGreek}
a\u0370
true a\u0370 0

a[\p{InGreek}]c
a\u0370c
true a\u0370c 0

a[\P{InGreek}]c
a\u0370c
false 0

a[\P{InGreek}]c
abc
true abc 0

a[{^InGreek}]c
anc
true anc 0

a[{^InGreek}]c
azc
false 0

a[\p{^InGreek}]c
-
error

a[\P{^InGreek}]c
-
error

a[\p{InGreek}]
a\u0370
true a\u0370 0

a[r\p{InGreek}]c
arc
true arc 0

a[\p{InGreek}r]c
arc
true arc 0

a[r\p{InGreek}]c
arc
true arc 0

a[^\p{InGreek}]c
a\u0370c
false 0

a[^\P{InGreek}]c
a\u0370c
true a\u0370c 0

a[\p{InGreek}&&[^\u0370]]c
a\u0370c
false 0

// Test the dot metacharacter
a.c.+
a#c%&
true a#c%& 0

ab.
ab\n
false 0

(?s)ab.
ab\n
true ab\n 0

a[\p{L}&&[\P{InGreek}]]c
a\u6000c
true a\u6000c 0

a[\p{L}&&[\P{InGreek}]]c
arc
true arc 0

a[\p{L}&&[\P{InGreek}]]c
a\u0370c
false 0

a\p{InGreek}c
a\u0370c
true a\u0370c 0

a\p{Sc}
a$
true a$ 0

// Test the word char escape sequence
ab\wc
abcc
true abcc 0

\W\w\W
#r#
true #r# 0

\W\w\W
rrrr#ggg
false 0

abc[\w]
abcd
true abcd 0

abc[\sdef]*
abc  def
true abc  def 0

abc[\sy-z]*
abc y z
true abc y z 0

abc[a-d\sm-p]*
abcaa mn  p
true abcaa mn  p 0

// Test the whitespace escape sequence
ab\sc
ab c
true ab c 0

\s\s\s
blah  err
false 0

\S\S\s
blah  err
true ah  0

// Test the digit escape sequence
ab\dc
ab9c
true ab9c 0

\d\d\d
blah45
false 0

// Test the caret metacharacter
^abc
abcdef
true abc 0

^abc
bcdabc
false 0

// Greedy ? metacharacter
a?b
aaaab
true ab 0

a?b
b
true b 0

a?b
aaaccc
false 0

.?b
aaaab
true ab 0

// Reluctant ? metacharacter
a??b
aaaab
true ab 0

a??b
b
true b 0

a??b
aaaccc
false 0

.??b
aaaab
true ab 0

// Possessive ? metacharacter
a?+b
aaaab
true ab 0

a?+b
b
true b 0

a?+b
aaaccc
false 0

.?+b
aaaab
true ab 0

// Greedy + metacharacter
a+b
aaaab
true aaaab 0

a+b
b
false 0

a+b
aaaccc
false 0

.+b
aaaab
true aaaab 0

// Reluctant + metacharacter
a+?b
aaaab
true aaaab 0

a+?b
b
false 0

a+?b
aaaccc
false 0

.+?b
aaaab
true aaaab 0

// Possessive + metacharacter
a++b
aaaab
true aaaab 0

a++b
b
false 0

a++b
aaaccc
false 0

.++b
aaaab
false 0

// Greedy Repetition
a{2,3}
a
false 0

a{2,3}
aa
true aa 0

a{2,3}
aaa
true aaa 0

a{2,3}
aaaa
true aaa 0

a{3,}
zzzaaaazzz
true aaaa 0

a{3,}
zzzaazzz
false 0

// Reluctant Repetition
a{2,3}?
a
false 0

a{2,3}?
aa
true aa 0

a{2,3}?
aaa
true aa 0

a{2,3}?
aaaa
true aa 0

// Zero width Positive lookahead
abc(?=d)
zzzabcd
true abc 0

abc(?=d)
zzzabced
false 0

// Zero width Negative lookahead
abc(?!d)
zzabcd
false 0

abc(?!d)
zzabced
true abc 0

// Zero width Positive lookbehind
\w(?<=a)
###abc###
true a 0

\w(?<=a)
###ert###
false 0

// Zero width Negative lookbehind
(?<!a)\w
###abc###
true a 0

(?<!a)c
bc
true c 0

(?<!a)c
ac
false 0

// Nondeterministic group
(a+b)+
ababab
true ababab 1 ab

(a|b)+
ccccd
false 1

// Deterministic group
(ab)+
ababab
true ababab 1 ab

(ab)+
accccd
false 1

(ab)*
ababab
true ababab 1 ab

(ab)(cd*)
zzzabczzz
true abc 2 ab c

abc(d)*abc
abcdddddabc
true abcdddddabc 1 d

// Escaped metacharacter
\*
*
true * 0

\\
\
true \ 0

\\
\\\\
true \ 0

// Back references
(a*)bc\1
zzzaabcaazzz
true aabcaa 1 aa

(a*)bc\1
zzzaabcazzz
true abca 1 a

(gt*)(dde)*(yu)\1\3(vv)
zzzgttddeddeyugttyuvvzzz
true gttddeddeyugttyuvv 4 gtt dde yu vv

// Greedy * metacharacter
a*b
aaaab
true aaaab 0

a*b
b
true b 0

a*b
aaaccc
false 0

.*b
aaaab
true aaaab 0

// Reluctant * metacharacter
a*?b
aaaab
true aaaab 0

a*?b
b
true b 0

a*?b
aaaccc
false 0

.*?b
aaaab
true aaaab 0

// Possessive * metacharacter
a*+b
aaaab
true aaaab 0

a*+b
b
true b 0

a*+b
aaaccc
false 0

.*+b
aaaab
false 0

// Case insensitivity
(?i)foobar
fOobAr
true fOobAr 0

f(?i)oobar
fOobAr
true fOobAr 0

foo(?i)bar
fOobAr
false 0

(?i)foo[bar]+
foObAr
true foObAr 0

(?i)foo[a-r]+
foObAr
true foObAr 0

// Disable metacharacters- test both length <=3 and >3
// So that the BM optimization is part of test
\Q***\Eabc
***abc
true ***abc 0

bl\Q***\Eabc
bl***abc
true bl***abc 0

\Q***abc
***abc
true ***abc 0

blah\Q***\Eabc
blah***abc
true blah***abc 0

\Q***abc
***abc
true ***abc 0

\Q*ab
*ab
true *ab 0

blah\Q***abc
blah***abc
true blah***abc 0

bla\Q***abc
bla***abc
true bla***abc 0

// Escapes in char classes
[ab\Qdef\E]
d
true d 0

[ab\Q[\E]
[
true [ 0

[\Q]\E]
]
true ] 0

[\Q\\E]
\
true \ 0

[\Q(\E]
(
true ( 0

[\n-#]
!
true ! 0

[\n-#]
-
false 0

[\w-#]
!
false 0

[\w-#]
a
true a 0

[\w-#]
-
true - 0

[\w-#]
#
true # 0

[\043]+
blahblah#blech
true # 0

[\042-\044]+
blahblah#blech
true # 0

[\u1234-\u1236]
blahblah\u1235blech
true \u1235 0

[^\043]*
blahblah#blech
true blahblah 0

(|f)?+
foo
true  1 
