<testSuite>
<testCase>
<correct>xyzzy</correct>
<valid>xyzzy</valid>
<invalid>xyzz</invalid>
<invalid>xyzzyy</invalid>
<invalid>xxyzzy</invalid>
<invalid>XYZZY</invalid>
<invalid> xyzzy</invalid>
</testCase>
<testCase>
<correct>\i</correct>
<valid>j</valid>
<valid>&#x212E;</valid>
</testCase>
<testCase>
<incorrect>a??</incorrect>
</testCase>
<testCase>
<correct>\P{IsGothic}</correct>
<invalid>&#x10330;</invalid>
<invalid>&#x1033F;</invalid>
<invalid>&#x1034F;</invalid>
<valid>X</valid>
<valid>&#x1032F;</valid>
<valid>&#x20330;</valid>
<valid>&#x30330;</valid>
<valid>&#x10350;</valid>
</testCase>
<testCase>
<correct>\p{IsGothic}</correct>
<valid>&#x10330;</valid>
<valid>&#x1033F;</valid>
<valid>&#x1034F;</valid>
<invalid>X</invalid>
<invalid>&#x1032F;</invalid>
<invalid>&#x20330;</invalid>
<invalid>&#x30330;</invalid>
<invalid>&#x10350;</invalid>
</testCase>
<testCase>
<correct>$</correct>
<valid>$</valid>
<invalid/>
</testCase>
<testCase>
<correct>a|b</correct>
</testCase>
<testCase>
<correct>[x-y]</correct>
</testCase>
<testCase>
<correct>[\p{Nd}-[a-z]]</correct>
</testCase>
<testCase>
<correct>[\p{Nd}-[\p{IsThai}]]</correct>
</testCase>
<testCase>
<correct>\p{IsThai}</correct>
</testCase>
<testCase>
<correct>\i\c*</correct>
</testCase>
<testCase>
<correct>~!@#$%\^&amp;\*\(\)_\+`\-=\{\}\[\]\|\\:;"',\.&lt;>/\?</correct>
<valid>~!@#$%^&amp;*()_+`-={}[]|\:;"',.&lt;>/?</valid>
</testCase>
<testCase>
<correct>[f&amp;&amp;g]</correct>
<valid>f</valid>
<valid>&amp;</valid>
<valid>g</valid>
</testCase>
<testCase>
<correct>^</correct>
<valid>^</valid>
</testCase>
<testCase>
<incorrect>\</incorrect>
</testCase>
<testCase>
<incorrect>?</incorrect>
</testCase>
<testCase>
<incorrect>*</incorrect>
</testCase>
<testCase>
<incorrect>+</incorrect>
</testCase>
<testCase>
<incorrect>)</incorrect>
</testCase>
<testCase>
<incorrect>(</incorrect>
</testCase>
<testCase>
<incorrect>[</incorrect>
</testCase>
<testCase>
<incorrect>]</incorrect>
</testCase>
<testCase>
<correct>-</correct>
<valid>-</valid>
</testCase>
<testCase>
<correct>|</correct>
<valid/>
<invalid>|</invalid>
</testCase>
<testCase>
<correct>.</correct>
<valid>.</valid>
<invalid/>
<invalid>
</invalid>
<invalid>&#xA;</invalid>
<invalid>&#xD;</invalid>
<invalid>..</invalid>
<valid>&#x10330;</valid>
</testCase>
<testCase>
<incorrect>[^]</incorrect>
</testCase>
<testCase>
<incorrect>[]</incorrect>
</testCase>
<testCase>
<incorrect>[]]</incorrect>
</testCase>
<testCase>
<incorrect>[[]</incorrect>
</testCase>
<testCase>
<incorrect>[\]</incorrect>
</testCase>
<testCase>
<correct>[^^]</correct>
<valid>x</valid>
<invalid>^</invalid>
</testCase>
<testCase>
<correct>[?+*(){}|.]</correct>
<valid>?</valid>
<valid>+</valid>
<valid>*</valid>
<valid>(</valid>
<valid>)</valid>
<valid>{</valid>
<valid>}</valid>
<valid>|</valid>
<valid>.</valid>
<invalid>x</invalid>
</testCase>
<testCase>
<correct/>
<valid/>
<invalid>x</invalid>
</testCase>
<testCase>
<incorrect>x{2,1}</incorrect>
</testCase>
<testCase>
<correct>x{1,1}</correct>
<valid>x</valid>
</testCase>
<testCase>
<incorrect>x{1, 2}</incorrect>
</testCase>
<testCase>
<incorrect>x{ 2}</incorrect>
</testCase>
<testCase>
<incorrect>x{2 }</incorrect>
</testCase>
<testCase>
<incorrect>x{-0,1}</incorrect>
</testCase>
<testCase>
<incorrect>x{+2}</incorrect>
</testCase>
<testCase>
<correct>x{2147483648}</correct>
<invalid>x</invalid>
</testCase>
<testCase>
<incorrect>x{2147483649,2147483648}</incorrect>
</testCase>
<testCase>
<correct>x{0,2147483648}</correct>
<valid>x</valid>
</testCase>
<testCase>
<correct>[a-z-[c-y]]</correct>
<valid>a</valid>
<valid>b</valid>
<valid>z</valid>
<invalid>c</invalid>
<invalid>y</invalid>
<invalid>d</invalid>
</testCase>
<testCase>
<correct>[abc-[a-a]]</correct>
<valid>b</valid>
<valid>c</valid>
<invalid>a</invalid>
<invalid>d</invalid>
</testCase>
<testCase>
<incorrect>[a-[a]-[a]]</incorrect>
</testCase>
<testCase>
<incorrect>\pL</incorrect>
</testCase>
<testCase>
<correct>\p{IsHighSurrogates}\p{IsLowSurrogates}</correct>
<invalid>&#x10330;</invalid>
</testCase>
<testCase>
<correct>a[&#x10330;-[&#x10330;]]*b</correct>
<valid>ab</valid>
<invalid>a&#x10330;b</invalid>
</testCase>
</testSuite>

