# Tests of \C when Unicode support is available. Note that \C is not supported
# for DFA matching in UTF mode, so this test is not run with -dfa. The output
# of this test is different in 8-, 16-, and 32-bit modes. Some tests may match
# in some widths and not in others.

/ab\Cde/utf,info
Capturing subpattern count = 0
Contains \C
Options: utf
First code unit = 'a'
Last code unit = 'e'
Subject length lower bound = 0
    abXde
 0: abXde

# This should produce an error diagnostic (\C in UTF lookbehind)

/(?<=ab\Cde)X/utf
Failed: error 136 at offset 10: \C is not allowed in a lookbehind assertion

# Autopossessification tests

/\C+\X \X+\C/Bx
------------------------------------------------------------------
        Bra
        AllAny+
        extuni
        extuni+
        AllAny
        Ket
        End
------------------------------------------------------------------

/\C+\X \X+\C/Bx,utf
------------------------------------------------------------------
        Bra
        Anybyte+
        extuni
        extuni+
        Anybyte
        Ket
        End
------------------------------------------------------------------

/\C\X*TӅ;
{0,6}\v+F
/utf
\= Expect no match
    Ӆ\x0a
No match

/\C(\W?ſ)'?{{/utf
\= Expect no match
    \\C(\\W?ſ)'?{{
No match

/X(\C{3})/utf
    X\x{1234}
No match
    X\x{11234}Y
No match
    X\x{11234}YZ
 0: X\x{11234}YZ
 1: \x{11234}YZ

/X(\C{4})/utf
    X\x{1234}YZ
No match
    X\x{11234}YZ
No match
    X\x{11234}YZW
 0: X\x{11234}YZW
 1: \x{11234}YZW

/X\C*/utf
    XYZabcdce
 0: XYZabcdce

/X\C*?/utf
    XYZabcde
 0: X

/X\C{3,5}/utf
    Xabcdefg
 0: Xabcde
    X\x{1234}
No match
    X\x{1234}YZ
 0: X\x{1234}YZ
    X\x{1234}\x{512}
No match
    X\x{1234}\x{512}YZ
 0: X\x{1234}\x{512}YZ
    X\x{11234}Y
No match
    X\x{11234}YZ
 0: X\x{11234}YZ
    X\x{11234}\x{512}
No match
    X\x{11234}\x{512}YZ
 0: X\x{11234}\x{512}YZ
    X\x{11234}\x{512}\x{11234}Z
 0: X\x{11234}\x{512}\x{11234}Z

/X\C{3,5}?/utf
    Xabcdefg
 0: Xabc
    X\x{1234}
No match
    X\x{1234}YZ
 0: X\x{1234}YZ
    X\x{1234}\x{512}
No match
    X\x{11234}Y
No match
    X\x{11234}YZ
 0: X\x{11234}YZ
    X\x{11234}\x{512}YZ
 0: X\x{11234}\x{512}Y
    X\x{11234}
No match

/a\Cb/utf
    aXb
 0: aXb
    a\nb
 0: a\x{0a}b
    a\x{100}b
 0: a\x{100}b

/a\C\Cb/utf
    a\x{100}b
No match
    a\x{12257}b
No match
    a\x{12257}\x{11234}b
 0: a\x{12257}\x{11234}b

/ab\Cde/utf
    abXde
 0: abXde

# This one is here not because it's different to Perl, but because the way
# the captured single code unit is displayed. (In Perl it becomes a character,
# and you can't tell the difference.)

/X(\C)(.*)/utf
    X\x{1234}
 0: X\x{1234}
 1: \x{1234}
 2: 
    X\nabc
 0: X\x{0a}abc
 1: \x{0a}
 2: abc

# This one is here because Perl gives out a grumbly error message (quite
# correctly, but that messes up comparisons).

/a\Cb/utf
\= Expect no match in 8-bit mode
    a\x{100}b
 0: a\x{100}b

# End of testinput22
