# This set of tests is run only with the 8-bit library. It tests the POSIX
# interface, which is supported only with the 8-bit library. This test should
# not be run with JIT (which is not available for the POSIX interface).
    
#forbid_utf
#pattern posix

# Test invalid options

/abc/auto_callout
** Ignored with POSIX interface: auto_callout

/abc/
   abc\=find_limits
** Ignored with POSIX interface: find_limits
 0: abc

/abc/
  abc\=partial_hard
** Ignored with POSIX interface: partial_hard
 0: abc

# Real tests

/abc/
    abc
 0: abc

/^abc|def/
    abcdef
 0: abc
    abcdef\=notbol
 0: def

/.*((abc)$|(def))/
    defabc
 0: defabc
 1: abc
 2: abc
    defabc\=noteol
 0: def
 1: def
 3: def

/the quick brown fox/
    the quick brown fox
 0: the quick brown fox
\= Expect no match
    The Quick Brown Fox
No match: POSIX code 17: match failed

/the quick brown fox/i
    the quick brown fox
 0: the quick brown fox
    The Quick Brown Fox
 0: The Quick Brown Fox

/(*LF)abc.def/
\= Expect no match
    abc\ndef
No match: POSIX code 17: match failed

/(*LF)abc$/
    abc
 0: abc
    abc\n
 0: abc

/(abc)\2/
Failed: POSIX code 15: bad back reference at offset 6     

/(abc\1)/
\= Expect no match
    abc
No match: POSIX code 17: match failed

/a*(b+)(z)(z)/
    aaaabbbbzzzz
 0: aaaabbbbzz
 1: bbbb
 2: z
 3: z
    aaaabbbbzzzz\=ovector=0
Matched without capture
    aaaabbbbzzzz\=ovector=1
 0: aaaabbbbzz
    aaaabbbbzzzz\=ovector=2
 0: aaaabbbbzz
 1: bbbb

/(*ANY)ab.cd/
    ab-cd
 0: ab-cd
    ab=cd
 0: ab=cd
\= Expect no match
    ab\ncd
No match: POSIX code 17: match failed

/ab.cd/s
    ab-cd
 0: ab-cd
    ab=cd
 0: ab=cd
    ab\ncd
 0: ab\x0acd

/a(b)c/posix_nosub
    abc
Matched with REG_NOSUB

/a(?P<name>b)c/posix_nosub
    abc
Matched with REG_NOSUB

/(a)\1/posix_nosub
    zaay
Matched with REG_NOSUB

/a?|b?/
    abc
 0: a
\= Expect no match
    ddd\=notempty
No match: POSIX code 17: match failed

/\w+A/
   CDAAAAB
 0: CDAAAA

/\w+A/ungreedy
   CDAAAAB
 0: CDA
   
/\Biss\B/I,aftertext
** Ignored with POSIX interface: info
    Mississippi
 0: iss
 0+ issippi

/abc/\
Failed: POSIX code 9: bad escape sequence at offset 3     

"(?(?C)"
Failed: POSIX code 11: unbalanced () at offset 6     

"(?(?C))"
Failed: POSIX code 3: pattern error at offset 2     

/abcd/substitute_extended
** Ignored with POSIX interface: substitute_extended

/\[A]{1000000}**/expand,regerror_buffsize=31
Failed: POSIX code 4: ? * + invalid at offset 100000
** regerror() message truncated

/\[A]{1000000}**/expand,regerror_buffsize=32
Failed: POSIX code 4: ? * + invalid at offset 1000001

# End of testdata/testinput18