# 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 some invalid options

/abc/auto_callout

/abc/
   abc\=find_limits

/abc/
  abc\=partial_hard
  
/a(())bc/parens_nest_limit=1

/abc/allow_surrogate_escapes,max_pattern_length=2

# Real tests

/abc/
    abc

/^abc|def/
    abcdef
    abcdef\=notbol

/.*((abc)$|(def))/
    defabc
    defabc\=noteol

/the quick brown fox/
    the quick brown fox
\= Expect no match
    The Quick Brown Fox

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

/(*LF)abc.def/
\= Expect no match
    abc\ndef

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

/(abc)\2/

/(abc\1)/
\= Expect no match
    abc

/a*(b+)(z)(z)/
    aaaabbbbzzzz
    aaaabbbbzzzz\=ovector=0
    aaaabbbbzzzz\=ovector=1
    aaaabbbbzzzz\=ovector=2

/(*ANY)ab.cd/
    ab-cd
    ab=cd
\= Expect no match
    ab\ncd

/ab.cd/s
    ab-cd
    ab=cd
    ab\ncd

/a(b)c/posix_nosub
    abc

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

/(a)\1/posix_nosub
    zaay

/a?|b?/
    abc
\= Expect no match
    ddd\=notempty

/\w+A/
   CDAAAAB

/\w+A/ungreedy
   CDAAAAB
   
/\Biss\B/I,aftertext
    Mississippi

/abc/\

"(?(?C)"

"(?(?C))"

/abcd/substitute_extended

/\[A]{1000000}**/expand,regerror_buffsize=31

/\[A]{1000000}**/expand,regerror_buffsize=32

//posix_nosub
    \=offset=70000

/^d(e)$/posix
    acdef\=posix_startend=2:4
    acde\=posix_startend=2 
\= Expect no match     
    acdef
    acdef\=posix_startend=2 

/^a\x{00}b$/posix
    a\x{00}b\=posix_startend=0:3

/"A" 00 "B"/hex
    A\x{00}B\=posix_startend=0:3
    
/ABC/use_length 
    ABC

/a\b(c/literal,posix
    a\\b(c

/a\b(c/literal,posix,dotall

/((a)(b)?(c))/posix
    123ace
    123ace\=posix_startend=2:6

//posix
\= Expect errors
    \=null_subject
    abc\=null_subject
    
/(*LIMIT_HEAP=0)xx/posix
\= Expect error
    xxxx 

# End of testdata/testinput18
