/[pcre]/code/trunk/testdata/testinput2
ViewVC logotype

Diff of /code/trunk/testdata/testinput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 410 by ph10, Wed Apr 1 07:39:22 2009 UTC revision 697 by ph10, Mon Sep 19 12:28:24 2011 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is a possible Perl
6        bug. --/
7    
8    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9        separated many (most?) of them out into test 11. However, there may still
10        be some that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13    
14  /abc/I  /abc/I
# Line 40  Line 51 
51    
52  /(?X)[\B]/  /(?X)[\B]/
53    
54    /(?X)[\R]/
55    
56    /(?X)[\X]/
57    
58    /[\B]/BZ
59    
60    /[\R]/BZ
61    
62    /[\X]/BZ
63    
64  /[z-a]/  /[z-a]/
65    
66  /^*/  /^*/
# Line 123  Line 144 
144      defabc      defabc
145      \Zdefabc      \Zdefabc
146    
147  /abc/IP  /abc/P
148      abc      abc
149      *** Failers      *** Failers
150    
151  /^abc|def/IP  /^abc|def/P
152      abcdef      abcdef
153      abcdef\B      abcdef\B
154    
155  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
156      defabc      defabc
157      \Zdefabc      \Zdefabc
158    
159  /the quick brown fox/IP  /the quick brown fox/P
160      the quick brown fox      the quick brown fox
161      *** Failers      *** Failers
162      The Quick Brown Fox      The Quick Brown Fox
163    
164  /the quick brown fox/IPi  /the quick brown fox/Pi
165      the quick brown fox      the quick brown fox
166      The Quick Brown Fox      The Quick Brown Fox
167    
168  /abc.def/IP  /abc.def/P
169      *** Failers      *** Failers
170      abc\ndef      abc\ndef
171    
172  /abc$/IP  /abc$/P
173      abc      abc
174      abc\n      abc\n
175    
176  /(abc)\2/IP  /(abc)\2/P
177    
178  /(abc\1)/IP  /(abc\1)/P
179      abc      abc
180    
181  /)/  /)/
# Line 333  Line 354 
354      *** Failers      *** Failers
355      a      a
356    
357  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I  /This one is here because Perl behaves differently; see also the following/I
358    
359  /^(a\1?){4}$/I  /^(a\1?){4}$/I
360        aaaa
361      aaaaaa      aaaaaa
362    
363    /Perl does not fail these two for the final subjects. Neither did PCRE until/
364    /release 8.01. The problem is in backtracking into a subpattern that contains/
365    /a recursive reference to itself. PCRE has now made these into atomic patterns./
366    
367    /^(xa|=?\1a){2}$/
368        xa=xaa
369        ** Failers
370        xa=xaaa
371    
372    /^(xa|=?\1a)+$/
373        xa=xaa
374        ** Failers
375        xa=xaaa
376    
377  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
378    
# Line 593  Line 629 
629      *** Failers      *** Failers
630      \Nabc      \Nabc
631    
632  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
633      aaaabbbbzzzz      aaaabbbbzzzz
634      aaaabbbbzzzz\O0      aaaabbbbzzzz\O0
635      aaaabbbbzzzz\O1      aaaabbbbzzzz\O1
# Line 1025  Line 1061 
1061  /abc(?C)de(?C1)f/I  /abc(?C)de(?C1)f/I
1062      123abcdef      123abcdef
1063    
1064  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
1065        1234abcdef
1066        *** Failers
1067        abcdef
1068    
1069    /(?C1)\dabc(?C2)def/ISS
1070      1234abcdef      1234abcdef
1071      *** Failers      *** Failers
1072      abcdef      abcdef
# Line 1122  Line 1163 
1163    
1164  /(a(?1)+b)/DZ  /(a(?1)+b)/DZ
1165    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
     1221  
     Satan, oscillate my metallic sonatas!  
     A man, a plan, a canal: Panama!  
     Able was I ere I saw Elba.  
     *** Failers  
     The quick brown fox  
   
1166  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
1167      12      12
1168      (((2+2)*-3)-7)      (((2+2)*-3)-7)
# Line 1282  Line 1315 
1315    abcde    abcde
1316    abcdfe    abcdfe
1317    
1318  /a*b/ICDZ  /a*b/ICDZS
1319      ab
1320      aaaab
1321      aaaacb
1322    
1323    /a*b/ICDZSS
1324    ab    ab
1325    aaaab    aaaab
1326    aaaacb    aaaacb
# Line 1292  Line 1330 
1330    aaaab    aaaab
1331    aaaacb    aaaacb
1332    
1333  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
1334      abcx
1335      defx
1336      ** Failers
1337      abcdefzx
1338    
1339    /(abc|def)x/ICDZSS
1340    abcx    abcx
1341    defx    defx
1342      ** Failers
1343    abcdefzx    abcdefzx
1344    
1345  /(ab|cd){3,4}/IC  /(ab|cd){3,4}/IC
# Line 1302  Line 1347 
1347    abcdabcd    abcdabcd
1348    abcdcdcdcdcd    abcdcdcdcdcd
1349    
1350  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
1351        Note: that { does NOT introduce a quantifier
1352    
1353    /([ab]{,4}c|xy)/ICDZSS
1354      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
1355    
1356  /([ab]{1,4}c|xy){4,5}?123/ICDZ  /([ab]{1,4}c|xy){4,5}?123/ICDZ
# Line 1376  Line 1424 
1424      1X      1X
1425      123456\P      123456\P
1426    
1427  /abc/I>testsavedregex  /abc/IS>testsavedregex
1428    <testsavedregex
1429        abc
1430        ** Failers
1431        bca
1432    
1433    /abc/ISS>testsavedregex
1434  <testsavedregex  <testsavedregex
1435      abc      abc
1436      ** Failers      ** Failers
1437      bca      bca
1438    
1439  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
1440    <testsavedregex
1441        abc
1442        ** Failers
1443        bca
1444    
1445    /abc/IFSS>testsavedregex
1446  <testsavedregex  <testsavedregex
1447      abc      abc
1448      ** Failers      ** Failers
# Line 1394  Line 1454 
1454      ** Failers      ** Failers
1455      def      def
1456    
1457    /(a|b)/ISS>testsavedregex
1458    <testsavedregex
1459        abc
1460        ** Failers
1461        def
1462    
1463  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
1464  <testsavedregex  <testsavedregex
1465      abc      abc
1466      ** Failers      ** Failers
1467      def      def
1468    
1469    /(a|b)/ISSF>testsavedregex
1470    <testsavedregex
1471        abc
1472        ** Failers
1473        def
1474    
1475  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
1476      <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
1477    
1478  /^a/IF  /^a/IF
1479    
# Line 1419  Line 1491 
1491      ** Failers      ** Failers
1492      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
1493    
1494  /ab.cd/IP  /ab.cd/P
1495      ab-cd      ab-cd
1496      ab=cd      ab=cd
1497      ** Failers      ** Failers
1498      ab\ncd      ab\ncd
1499    
1500  /ab.cd/IPs  /ab.cd/Ps
1501      ab-cd      ab-cd
1502      ab=cd      ab=cd
1503      ab\ncd      ab\ncd
# Line 1480  Line 1552 
1552      (this)      (this)
1553      ((this))      ((this))
1554    
1555  /a(b)c/IPN  /a(b)c/PN
1556      abc      abc
1557    
1558  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
1559      abc      abc
1560    
1561  /\x{100}/I  /\x{100}/I
# Line 1915  a random value. /Ix Line 1987  a random value. /Ix
1987  /(?=(?'abc'\w+))\k<abc>:/I  /(?=(?'abc'\w+))\k<abc>:/I
1988      abcd:      abcd:
1989    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
     ab:ababxyz  
     ** Failers  
     a:axyz  
     ab:abxyz  
   
1990  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
1991      adaa      adaa
1992      ** Failers      ** Failers
# Line 1934  a random value. /Ix Line 1999  a random value. /Ix
1999      ** Failers      ** Failers
2000      bddd      bddd
2001    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
     ce  
   
2002  /(?(<bc))/  /(?(<bc))/
2003    
2004  /(?(''))/  /(?(''))/
# Line 1955  a random value. /Ix Line 2016  a random value. /Ix
2016  /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
2017      abcabc1Xabc2XabcXabcabc      abcabc1Xabc2XabcXabcabc
2018    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
   
2019  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
2020    
2021  /(?(DEFINE) abc) xyz/xI  /(?(DEFINE) abc) xyz/xI
2022    
 /(?(DEFINE) abc){3} xyz/x  
   
2023  /(a|)*\d/  /(a|)*\d/
2024    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2025    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
# Line 2053  a random value. /Ix Line 2102  a random value. /Ix
2102  /(?1)X(?<abc>P)/I  /(?1)X(?<abc>P)/I
2103      abcPXP123      abcPXP123
2104    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
     131.111.10.206  
     10.0.0.0  
     ** Failers  
     10.6  
     455.3.4.5  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
     131.111.10.206  
     10.0.0.0  
     ** Failers  
     10.6  
     455.3.4.5  
   
2105  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
2106      123axbaxbaxbx456      123axbaxbaxbx456
2107      123axbaxbaxb456      123axbaxbaxb456
# Line 2090  a random value. /Ix Line 2123  a random value. /Ix
2123     defabcabcxyz     defabcabcxyz
2124     DEFabcABCXYZ     DEFabcABCXYZ
2125    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
   
2126  /^(a)\g-2/  /^(a)\g-2/
2127    
2128  /^(a)\g/  /^(a)\g/
# Line 2191  a random value. /Ix Line 2221  a random value. /Ix
2221  /^(?(+1)X|Y)(.)/BZ  /^(?(+1)X|Y)(.)/BZ
2222      Y!      Y!
2223    
 /(foo)\Kbar/  
     foobar  
   
 /(foo)(\Kbar|baz)/  
     foobar  
     foobaz  
   
 /(foo\Kbar)baz/  
     foobarbaz  
   
2224  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
2225      tom-tom      tom-tom
2226      bon-bon      bon-bon
2227      ** Failers      ** Failers
2228      tom-bon      tom-bon
2229    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
     bon-bon  
   
2230  /\g{A/  /\g{A/
2231    
2232  /(?|(abc)|(xyz))/BZ  /(?|(abc)|(xyz))/BZ
# Line 2225  a random value. /Ix Line 2241  a random value. /Ix
2241      xabcpqrx      xabcpqrx
2242      xxyzx      xxyzx
2243    
 /(?|(abc)|(xyz))\1/  
     abcabc  
     xyzxyz  
     ** Failers  
     abcxyz  
     xyzabc  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
     xyzabc  
     ** Failers  
     xyzxyz  
   
 /\H\h\V\v/  
     X X\x0a  
     X\x09X\x0b  
     ** Failers  
     \xa0 X\x0a  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
     \x09\x20\xa0\x0a\x0b\x0c  
     ** Failers  
     \x09\x20\xa0\x0a\x0b  
   
 /\H{3,4}/  
     XY  ABCDE  
     XY  PQR ST  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
     >  X NYQZ  
     ** Failers  
     >XYZ  
     >  X NY Z  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
2244  /[\h]/BZ  /[\h]/BZ
2245      >\x09<      >\x09<
2246    
# Line 2325  a random value. /Ix Line 2297  a random value. /Ix
2297  /\V+\v\V+\w/BZ  /\V+\v\V+\w/BZ
2298    
2299  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
2300  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
2301    
2302  /[\E]AAA/  /[\E]AAA/
2303    
# Line 2341  a random value. /Ix Line 2313  a random value. /Ix
2313    
2314  /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ  /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
2315    
 /^a+(*FAIL)/  
     aaaaaa  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
     aaa++++++  
     bbbxxxxx  
     bbb+++++  
     cccxxxx  
     ccc++++  
     dddddddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
     aaa++++++  
     bbbxxxxx  
     bbb+++++  
     cccxxxx  
     ccc++++  
     dddddddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
     AADE  
     ACDE  
     ** Failers  
     AD  
   
2316  /^a+(*FAIL)/C  /^a+(*FAIL)/C
2317      aaaaaa      aaaaaa
2318    
# Line 2402  a random value. /Ix Line 2331  a random value. /Ix
2331  /a+b?(*THEN)c+(*FAIL)/C  /a+b?(*THEN)c+(*FAIL)/C
2332      aaabccc      aaabccc
2333    
 /a(*PRUNE:XXX)b/  
   
2334  /a(*MARK)b/  /a(*MARK)b/
2335    
2336  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
2337    
2338  /\g6666666666/  /\g6666666666/
2339    
2340  /[\g6666666666]/  /[\g6666666666]/BZ
2341    
2342  /(?1)\c[/  /(?1)\c[/
2343    
# Line 2461  a random value. /Ix Line 2388  a random value. /Ix
2388      a\nb      a\nb
2389      a\r\nb      a\r\nb
2390      a\x85b      a\x85b
2391    
2392    /(*ANY).*/g
2393        abc\r\ndef
2394    
2395    /(*ANYCRLF).*/g
2396        abc\r\ndef
2397    
2398    /(*CRLF).*/g
2399        abc\r\ndef
2400    
2401  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
2402      a\rb      a\rb
# Line 2559  a random value. /Ix Line 2495  a random value. /Ix
2495    
2496  /\k{}/  /\k{}/
2497    
2498    /\k/
2499    
2500    /\kabc/
2501    
2502  /(?P=)/  /(?P=)/
2503    
2504  /(?P>)/  /(?P>)/
# Line 2589  a random value. /Ix Line 2529  a random value. /Ix
2529    
2530  /[[:a\dz:]]/  /[[:a\dz:]]/
2531    
 /^(?<name>a|b\g<name>c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /^(?<name>a|b\g'name'c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /^(a|b\g<1>c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /^(a|b\g'1'c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /^(a|b\g'-1'c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /(^(a|b\g<-1>c))/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
2532  /(^(a|b\g<-1'c))/  /(^(a|b\g<-1'c))/
2533    
 /(^(a|b\g{-1}))/  
     bacxxx  
   
 /(?-i:\g<name>)(?i:(?<name>a))/  
     XaaX  
     XAAX  
   
 /(?i:\g<name>)(?-i:(?<name>a))/  
     XaaX  
     ** Failers  
     XAAX  
   
 /(?-i:\g<+1>)(?i:(a))/  
     XaaX  
     XAAX  
   
 /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/  
   
 /(?<n>a|b|c)\g<n>*/  
    abc  
    accccbbb  
   
2534  /^(?+1)(?<a>x|y){0}z/  /^(?+1)(?<a>x|y){0}z/
2535      xzxx      xzxx
2536      yzyy      yzyy
# Line 2748  a random value. /Ix Line 2630  a random value. /Ix
2630    abc\Y    abc\Y
2631    abcxypqr    abcxypqr
2632    abcxypqr\Y    abcxypqr\Y
2633    
2634    /(*NO_START_OPT)xyz/C
2635      abcxyz
2636    
2637    /xyz/CY
2638      abcxyz
2639    
2640  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
2641      "ab"      "ab"
# Line 2755  a random value. /Ix Line 2643  a random value. /Ix
2643  /^"((?(?=[a])[^"])|b)*"$/  /^"((?(?=[a])[^"])|b)*"$/
2644      "ab"      "ab"
2645    
 /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/  
     XYabcdY  
   
2646  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
2647      XYabcdY      XYabcdY
2648    
2649  /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/  /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
2650      XYabcdY      XYabcdY
2651    
2652    /Xa{2,4}b/
2653        X\P
2654        Xa\P
2655        Xaa\P
2656        Xaaa\P
2657        Xaaaa\P
2658    
2659    /Xa{2,4}?b/
2660        X\P
2661        Xa\P
2662        Xaa\P
2663        Xaaa\P
2664        Xaaaa\P
2665    
2666    /Xa{2,4}+b/
2667        X\P
2668        Xa\P
2669        Xaa\P
2670        Xaaa\P
2671        Xaaaa\P
2672    
2673    /X\d{2,4}b/
2674        X\P
2675        X3\P
2676        X33\P
2677        X333\P
2678        X3333\P
2679    
2680    /X\d{2,4}?b/
2681        X\P
2682        X3\P
2683        X33\P
2684        X333\P
2685        X3333\P
2686    
2687    /X\d{2,4}+b/
2688        X\P
2689        X3\P
2690        X33\P
2691        X333\P
2692        X3333\P
2693    
2694    /X\D{2,4}b/
2695        X\P
2696        Xa\P
2697        Xaa\P
2698        Xaaa\P
2699        Xaaaa\P
2700    
2701    /X\D{2,4}?b/
2702        X\P
2703        Xa\P
2704        Xaa\P
2705        Xaaa\P
2706        Xaaaa\P
2707    
2708    /X\D{2,4}+b/
2709        X\P
2710        Xa\P
2711        Xaa\P
2712        Xaaa\P
2713        Xaaaa\P
2714    
2715    /X[abc]{2,4}b/
2716        X\P
2717        Xa\P
2718        Xaa\P
2719        Xaaa\P
2720        Xaaaa\P
2721    
2722    /X[abc]{2,4}?b/
2723        X\P
2724        Xa\P
2725        Xaa\P
2726        Xaaa\P
2727        Xaaaa\P
2728    
2729    /X[abc]{2,4}+b/
2730        X\P
2731        Xa\P
2732        Xaa\P
2733        Xaaa\P
2734        Xaaaa\P
2735    
2736    /X[^a]{2,4}b/
2737        X\P
2738        Xz\P
2739        Xzz\P
2740        Xzzz\P
2741        Xzzzz\P
2742    
2743    /X[^a]{2,4}?b/
2744        X\P
2745        Xz\P
2746        Xzz\P
2747        Xzzz\P
2748        Xzzzz\P
2749    
2750    /X[^a]{2,4}+b/
2751        X\P
2752        Xz\P
2753        Xzz\P
2754        Xzzz\P
2755        Xzzzz\P
2756    
2757    /(Y)X\1{2,4}b/
2758        YX\P
2759        YXY\P
2760        YXYY\P
2761        YXYYY\P
2762        YXYYYY\P
2763    
2764    /(Y)X\1{2,4}?b/
2765        YX\P
2766        YXY\P
2767        YXYY\P
2768        YXYYY\P
2769        YXYYYY\P
2770    
2771    /(Y)X\1{2,4}+b/
2772        YX\P
2773        YXY\P
2774        YXYY\P
2775        YXYYY\P
2776        YXYYYY\P
2777    
2778    /\++\KZ|\d+X|9+Y/
2779        ++++123999\P
2780        ++++123999Y\P
2781        ++++Z1234\P
2782    
2783    /Z(*F)/
2784        Z\P
2785        ZA\P
2786    
2787    /Z(?!)/
2788        Z\P
2789        ZA\P
2790    
2791    /dog(sbody)?/
2792        dogs\P
2793        dogs\P\P
2794    
2795    /dog(sbody)??/
2796        dogs\P
2797        dogs\P\P
2798    
2799    /dog|dogsbody/
2800        dogs\P
2801        dogs\P\P
2802    
2803    /dogsbody|dog/
2804        dogs\P
2805        dogs\P\P
2806    
2807    /\bthe cat\b/
2808        the cat\P
2809        the cat\P\P
2810    
2811    /abc/
2812       abc\P
2813       abc\P\P
2814    
2815    /\w+A/P
2816       CDAAAAB
2817    
2818    /\w+A/PU
2819       CDAAAAB
2820    
2821    /abc\K123/
2822        xyzabc123pqr
2823        xyzabc12\P
2824        xyzabc12\P\P
2825    
2826    /(?<=abc)123/
2827        xyzabc123pqr
2828        xyzabc12\P
2829        xyzabc12\P\P
2830    
2831    /\babc\b/
2832        +++abc+++
2833        +++ab\P
2834        +++ab\P\P
2835    
2836    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
2837    
2838    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
2839    
2840    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
2841    
2842    /abc\K/+
2843        abcdef
2844        abcdef\N\N
2845        xyzabcdef\N\N
2846        ** Failers
2847        abcdef\N
2848        xyzabcdef\N
2849    
2850    /^(?:(?=abc)|abc\K)/+
2851        abcdef
2852        abcdef\N\N
2853        ** Failers
2854        abcdef\N
2855    
2856    /a?b?/+
2857        xyz
2858        xyzabc
2859        xyzabc\N
2860        xyzabc\N\N
2861        xyz\N\N
2862        ** Failers
2863        xyz\N
2864    
2865    /^a?b?/+
2866        xyz
2867        xyzabc
2868        ** Failers
2869        xyzabc\N
2870        xyzabc\N\N
2871        xyz\N\N
2872        xyz\N
2873    
2874    /^(?<name>a|b\g<name>c)/
2875        aaaa
2876        bacxxx
2877        bbaccxxx
2878        bbbacccxx
2879    
2880    /^(?<name>a|b\g'name'c)/
2881        aaaa
2882        bacxxx
2883        bbaccxxx
2884        bbbacccxx
2885    
2886    /^(a|b\g<1>c)/
2887        aaaa
2888        bacxxx
2889        bbaccxxx
2890        bbbacccxx
2891    
2892    /^(a|b\g'1'c)/
2893        aaaa
2894        bacxxx
2895        bbaccxxx
2896        bbbacccxx
2897    
2898    /^(a|b\g'-1'c)/
2899        aaaa
2900        bacxxx
2901        bbaccxxx
2902        bbbacccxx
2903    
2904    /(^(a|b\g<-1>c))/
2905        aaaa
2906        bacxxx
2907        bbaccxxx
2908        bbbacccxx
2909    
2910    /(?-i:\g<name>)(?i:(?<name>a))/
2911        XaaX
2912        XAAX
2913    
2914    /(?i:\g<name>)(?-i:(?<name>a))/
2915        XaaX
2916        ** Failers
2917        XAAX
2918    
2919    /(?-i:\g<+1>)(?i:(a))/
2920        XaaX
2921        XAAX
2922    
2923    /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
2924    
2925    /(?<n>a|b|c)\g<n>*/
2926       abc
2927       accccbbb
2928    
2929  /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/  /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
2930      XYabcdY      XYabcdY
2931    
2932  /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/  /(?<=b(?1)|zzz)(a)/
2933      XYabcdY      xbaax
2934        xzzzax
2935    
2936    /(a)(?<=b\1)/
2937    
2938    /(a)(?<=b+(?1))/
2939    
2940    /(a+)(?<=b(?1))/
2941    
2942    /(a(?<=b(?1)))/
2943    
2944    /(?<=b(?1))xyz/
2945    
2946    /(?<=b(?1))xyz(b+)pqrstuvew/
2947    
2948    /(a|bc)\1/SI
2949    
2950    /(a|bc)\1{2,3}/SI
2951    
2952    /(a|bc)(?1)/SI
2953    
2954    /(a|b\1)(a|b\1)/SI
2955    
2956    /(a|b\1){2}/SI
2957    
2958    /(a|bbbb\1)(a|bbbb\1)/SI
2959    
2960    /(a|bbbb\1){2}/SI
2961    
2962    /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
2963    
2964    /  (?: [\040\t] |  \(
2965    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2966    \)  )*                          # optional leading comment
2967    (?:    (?:
2968    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2969    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2970    |
2971    " (?:                      # opening quote...
2972    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
2973    |                     #    or
2974    \\ [^\x80-\xff]           #   Escaped something (something != CR)
2975    )* "  # closing quote
2976    )                    # initial word
2977    (?:  (?: [\040\t] |  \(
2978    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2979    \)  )*  \.  (?: [\040\t] |  \(
2980    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2981    \)  )*   (?:
2982    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2983    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2984    |
2985    " (?:                      # opening quote...
2986    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
2987    |                     #    or
2988    \\ [^\x80-\xff]           #   Escaped something (something != CR)
2989    )* "  # closing quote
2990    )  )* # further okay, if led by a period
2991    (?: [\040\t] |  \(
2992    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2993    \)  )*  @  (?: [\040\t] |  \(
2994    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2995    \)  )*    (?:
2996    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2997    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2998    |   \[                         # [
2999    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3000    \]                        #           ]
3001    )                           # initial subdomain
3002    (?:                                  #
3003    (?: [\040\t] |  \(
3004    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3005    \)  )*  \.                        # if led by a period...
3006    (?: [\040\t] |  \(
3007    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3008    \)  )*   (?:
3009    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3010    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3011    |   \[                         # [
3012    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3013    \]                        #           ]
3014    )                     #   ...further okay
3015    )*
3016    # address
3017    |                     #  or
3018    (?:
3019    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3020    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3021    |
3022    " (?:                      # opening quote...
3023    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
3024    |                     #    or
3025    \\ [^\x80-\xff]           #   Escaped something (something != CR)
3026    )* "  # closing quote
3027    )             # one word, optionally followed by....
3028    (?:
3029    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
3030    \(
3031    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3032    \)       |  # comments, or...
3033    
3034    " (?:                      # opening quote...
3035    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
3036    |                     #    or
3037    \\ [^\x80-\xff]           #   Escaped something (something != CR)
3038    )* "  # closing quote
3039    # quoted strings
3040    )*
3041    <  (?: [\040\t] |  \(
3042    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3043    \)  )*                     # leading <
3044    (?:  @  (?: [\040\t] |  \(
3045    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3046    \)  )*    (?:
3047    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3048    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3049    |   \[                         # [
3050    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3051    \]                        #           ]
3052    )                           # initial subdomain
3053    (?:                                  #
3054    (?: [\040\t] |  \(
3055    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3056    \)  )*  \.                        # if led by a period...
3057    (?: [\040\t] |  \(
3058    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3059    \)  )*   (?:
3060    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3061    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3062    |   \[                         # [
3063    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3064    \]                        #           ]
3065    )                     #   ...further okay
3066    )*
3067    
3068    (?:  (?: [\040\t] |  \(
3069    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3070    \)  )*  ,  (?: [\040\t] |  \(
3071    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3072    \)  )*  @  (?: [\040\t] |  \(
3073    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3074    \)  )*    (?:
3075    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3076    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3077    |   \[                         # [
3078    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3079    \]                        #           ]
3080    )                           # initial subdomain
3081    (?:                                  #
3082    (?: [\040\t] |  \(
3083    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3084    \)  )*  \.                        # if led by a period...
3085    (?: [\040\t] |  \(
3086    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3087    \)  )*   (?:
3088    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3089    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3090    |   \[                         # [
3091    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3092    \]                        #           ]
3093    )                     #   ...further okay
3094    )*
3095    )* # further okay, if led by comma
3096    :                                # closing colon
3097    (?: [\040\t] |  \(
3098    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3099    \)  )*  )? #       optional route
3100    (?:
3101    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3102    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3103    |
3104    " (?:                      # opening quote...
3105    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
3106    |                     #    or
3107    \\ [^\x80-\xff]           #   Escaped something (something != CR)
3108    )* "  # closing quote
3109    )                    # initial word
3110    (?:  (?: [\040\t] |  \(
3111    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3112    \)  )*  \.  (?: [\040\t] |  \(
3113    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3114    \)  )*   (?:
3115    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3116    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3117    |
3118    " (?:                      # opening quote...
3119    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
3120    |                     #    or
3121    \\ [^\x80-\xff]           #   Escaped something (something != CR)
3122    )* "  # closing quote
3123    )  )* # further okay, if led by a period
3124    (?: [\040\t] |  \(
3125    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3126    \)  )*  @  (?: [\040\t] |  \(
3127    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3128    \)  )*    (?:
3129    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3130    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3131    |   \[                         # [
3132    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3133    \]                        #           ]
3134    )                           # initial subdomain
3135    (?:                                  #
3136    (?: [\040\t] |  \(
3137    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3138    \)  )*  \.                        # if led by a period...
3139    (?: [\040\t] |  \(
3140    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3141    \)  )*   (?:
3142    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3143    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3144    |   \[                         # [
3145    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3146    \]                        #           ]
3147    )                     #   ...further okay
3148    )*
3149    #       address spec
3150    (?: [\040\t] |  \(
3151    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3152    \)  )*  > #                  trailing >
3153    # name and address
3154    )  (?: [\040\t] |  \(
3155    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3156    \)  )*                       # optional trailing comment
3157    /xSI
3158    
3159    /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
3160    
3161    "(?>.*/)foo"SI
3162    
3163    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
3164    
3165    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
3166    
3167    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
3168    
3169    /<a[\s]+href[\s]*=[\s]*          # find <a href=
3170     ([\"\'])?                       # find single or double quote
3171     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
3172                                     # quote, otherwise match up to next space
3173    /isxSI
3174    
3175    /^(?!:)                       # colon disallowed at start
3176      (?:                         # start of item
3177        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
3178        (?(1)0 | () ) )           # if null previously matched, fail; else null
3179        :                         # followed by colon
3180      ){1,7}                      # end item; 1-7 of them required
3181      [0-9a-f]{1,4} $             # final hex number at end of string
3182      (?(1)|.)                    # check that there was an empty component
3183      /xiIS
3184    
3185    /(?|(?<a>A)|(?<a>B))/I
3186        AB\Ca
3187        BA\Ca
3188    
3189    /(?|(?<a>A)|(?<b>B))/
3190    
3191    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
3192        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
3193        (?('quote')[a-z]+|[0-9]+)/JIx
3194        a"aaaaa
3195        b"aaaaa
3196        ** Failers
3197        b"11111
3198        a"11111
3199    
3200    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
3201        abcdX
3202        eX
3203        ** Failers
3204        abcdY
3205        ey
3206    
3207    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
3208        abcdd
3209        ** Failers
3210        abcdde
3211    
3212  /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/  /abcd*/
3213      XYabcdY      xxxxabcd\P
3214        xxxxabcd\P\P
3215    
3216    /abcd*/i
3217        xxxxabcd\P
3218        xxxxabcd\P\P
3219        XXXXABCD\P
3220        XXXXABCD\P\P
3221    
3222    /abc\d*/
3223        xxxxabc1\P
3224        xxxxabc1\P\P
3225    
3226    /(a)bc\1*/
3227        xxxxabca\P
3228        xxxxabca\P\P
3229    
3230    /abc[de]*/
3231        xxxxabcde\P
3232        xxxxabcde\P\P
3233    
3234    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
3235        broken and not behaving as specified in that it *does* bumpalong after
3236        hitting (*COMMIT). --/
3237    
3238    /(?1)(A(*COMMIT)|B)D/
3239        ABD
3240        XABD
3241        BAD
3242        ABXABD
3243        ** Failers
3244        ABX
3245        BAXBAD
3246    
3247    /(\3)(\1)(a)/<JS>
3248        cat
3249    
3250    /(\3)(\1)(a)/SI<JS>
3251        cat
3252    
3253    /(\3)(\1)(a)/SI
3254        cat
3255    
3256    /i(?(DEFINE)(?<s>a))/SI
3257        i
3258    
3259    /()i(?(1)a)/SI
3260        ia
3261    
3262    /(?i)a(?-i)b|c/BZ
3263        XabX
3264        XAbX
3265        CcC
3266        ** Failers
3267        XABX
3268    
3269    /(?i)a(?s)b|c/BZ
3270    
3271    /(?i)a(?s-i)b|c/BZ
3272    
3273    /^(ab(c\1)d|x){2}$/BZ
3274        xabcxd
3275    
3276    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
3277    
3278    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
3279    
3280    / -- The first four of these are not in the Perl >= 5.10 test because Perl
3281         documents that the use of \K in assertions is "not well defined". The
3282         last is here because Perl gives the match as "b" rather than "ab". I
3283         believe this to be a Perl bug. --/
3284    
3285    /(?=a\Kb)ab/
3286        ab
3287    
3288    /(?!a\Kb)ac/
3289        ac
3290    
3291    /^abc(?<=b\Kc)d/
3292        abcd
3293    
3294    /^abc(?<!b\Kq)d/
3295        abcd
3296    
3297    /(?>a\Kb)z|(ab)/
3298        ab
3299    
3300    /----------------------/
3301    
3302    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
3303    
3304    /abc(*MARK:)pqr/
3305    
3306    /abc(*:)pqr/
3307    
3308    /abc(*FAIL:123)xyz/
3309    
3310    /--- This should, and does, fail. In Perl, it does not, which I think is a
3311         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
3312    
3313    /A(*COMMIT)B/+K
3314        ACABX
3315    
3316    /--- These should be different, but in Perl 5.11 are not, which I think
3317         is a bug in Perl. ---/
3318    
3319    /A(*THEN)B|A(*THEN)C/K
3320        AC
3321    
3322    /A(*PRUNE)B|A(*PRUNE)C/K
3323        AC
3324    
3325    /--- A whole lot of tests of verbs with arguments are here rather than in test
3326         11 because Perl doesn't seem to follow its specification entirely
3327         correctly. ---/
3328    
3329    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
3330         not clear how Perl defines "involved in the failure of the match". ---/
3331    
3332    /^(A(*THEN:A)B|C(*THEN:B)D)/K
3333        AB
3334        CD
3335        ** Failers
3336        AC
3337        CB
3338    
3339    /--- Check the use of names for success and failure. PCRE doesn't show these
3340    names for success, though Perl does, contrary to its spec. ---/
3341    
3342    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
3343        AB
3344        CD
3345        ** Failers
3346        AC
3347        CB
3348    
3349    /--- An empty name does not pass back an empty string. It is the same as if no
3350    name were given. ---/
3351    
3352    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
3353        AB
3354        CD
3355    
3356    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
3357    
3358    /A(*PRUNE:A)B/K
3359        ACAB
3360    
3361    /(*MARK:A)(*PRUNE:B)(C|X)/KS
3362        C
3363        D
3364    
3365    /(*MARK:A)(*PRUNE:B)(C|X)/KSS
3366        C
3367        D
3368    
3369    /(*MARK:A)(*THEN:B)(C|X)/KS
3370        C
3371        D
3372    
3373    /(*MARK:A)(*THEN:B)(C|X)/KSS
3374        C
3375        D
3376    
3377    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
3378    
3379    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
3380        AAAC
3381    
3382    /--- Same --/
3383    
3384    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
3385        AAAC
3386    
3387    /--- This should fail; the SKIP advances by one, but when we get to AC, the
3388         PRUNE kills it. ---/
3389    
3390    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
3391        AAAC
3392    
3393    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
3394        AAAC
3395    
3396    /--- This should fail, as a null name is the same as no name ---/
3397    
3398    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
3399        AAAC
3400    
3401    /--- This fails in PCRE, and I think that is in accordance with Perl's
3402         documentation, though in Perl it succeeds. ---/
3403    
3404    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
3405        AAAC
3406    
3407    /--- Mark names can be duplicated ---/
3408    
3409    /A(*:A)B|X(*:A)Y/K
3410        AABC
3411        XXYZ
3412    
3413    /^A(*:A)B|^X(*:A)Y/K
3414        ** Failers
3415        XAQQ
3416    
3417    /--- A check on what happens after hitting a mark and them bumping along to
3418    something that does not even start. Perl reports tags after the failures here,
3419    though it does not when the individual letters are made into something
3420    more complicated. ---/
3421    
3422    /A(*:A)B|XX(*:B)Y/K
3423        AABC
3424        XXYZ
3425        ** Failers
3426        XAQQ
3427        XAQQXZZ
3428        AXQQQ
3429        AXXQQQ
3430    
3431    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
3432    optimizations defeat this. So does the PCRE optimization unless we disable it
3433    with \Y. ---/
3434    
3435    /(*COMMIT)ABC/
3436        ABCDEFG
3437        ** Failers
3438        DEFGABC\Y
3439    
3440    /--- Repeat some tests with added studying. ---/
3441    
3442    /A(*COMMIT)B/+KS
3443        ACABX
3444    
3445    /A(*THEN)B|A(*THEN)C/KS
3446        AC
3447    
3448    /A(*PRUNE)B|A(*PRUNE)C/KS
3449        AC
3450    
3451    /^(A(*THEN:A)B|C(*THEN:B)D)/KS
3452        AB
3453        CD
3454        ** Failers
3455        AC
3456        CB
3457    
3458    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
3459        AB
3460        CD
3461        ** Failers
3462        AC
3463        CB
3464    
3465    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
3466        AB
3467        CD
3468    
3469    /A(*PRUNE:A)B/KS
3470        ACAB
3471    
3472    /(*MARK:A)(*PRUNE:B)(C|X)/KS
3473        C
3474        D
3475    
3476    /(*MARK:A)(*THEN:B)(C|X)/KS
3477        C
3478        D
3479    
3480    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
3481        AAAC
3482    
3483    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
3484        AAAC
3485    
3486    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
3487        AAAC
3488    
3489    /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
3490        AAAC
3491    
3492    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
3493        AAAC
3494    
3495    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
3496        AAAC
3497    
3498    /A(*:A)B|XX(*:B)Y/KS
3499        AABC
3500        XXYZ
3501        ** Failers
3502        XAQQ
3503        XAQQXZZ
3504        AXQQQ
3505        AXXQQQ
3506    
3507    /(*COMMIT)ABC/
3508        ABCDEFG
3509        ** Failers
3510        DEFGABC\Y
3511    
3512    /^(ab (c+(*THEN)cd) | xyz)/x
3513        abcccd
3514    
3515    /^(ab (c+(*PRUNE)cd) | xyz)/x
3516        abcccd
3517    
3518    /^(ab (c+(*FAIL)cd) | xyz)/x
3519        abcccd
3520    
3521    /--- Perl 5.11 gets some of these wrong ---/
3522    
3523    /(?>.(*ACCEPT))*?5/
3524        abcde
3525    
3526    /(.(*ACCEPT))*?5/
3527        abcde
3528    
3529    /(.(*ACCEPT))5/
3530        abcde
3531    
3532    /(.(*ACCEPT))*5/
3533        abcde
3534    
3535    /A\NB./BZ
3536        ACBD
3537        *** Failers
3538        A\nB
3539        ACB\n
3540    
3541    /A\NB./sBZ
3542        ACBD
3543        ACB\n
3544        *** Failers
3545        A\nB
3546    
3547    /A\NB/<crlf>
3548        A\nB
3549        A\rB
3550        ** Failers
3551        A\r\nB
3552    
3553    /\R+b/BZ
3554    
3555    /\R+\n/BZ
3556    
3557    /\R+\d/BZ
3558    
3559    /\d*\R/BZ
3560    
3561    /\s*\R/BZ
3562    
3563    /-- Perl treats this one differently, not failing the second string. I believe
3564        that is a bug in Perl. --/
3565    
3566    /^((abc|abcx)(*THEN)y|abcd)/
3567        abcd
3568        *** Failers
3569        abcxy
3570    
3571    /(?<=abc)def/
3572        abc\P\P
3573    
3574    /abc$/
3575        abc
3576        abc\P
3577        abc\P\P
3578    
3579    /abc$/m
3580        abc
3581        abc\n
3582        abc\P\P
3583        abc\n\P\P
3584        abc\P
3585        abc\n\P
3586    
3587    /abc\z/
3588        abc
3589        abc\P
3590        abc\P\P
3591    
3592    /abc\Z/
3593        abc
3594        abc\P
3595        abc\P\P
3596    
3597    /abc\b/
3598        abc
3599        abc\P
3600        abc\P\P
3601    
3602    /abc\B/
3603        abc
3604        abc\P
3605        abc\P\P
3606    
3607    /.+/
3608        abc\>0
3609        abc\>1
3610        abc\>2
3611        abc\>3
3612        abc\>4
3613        abc\>-4
3614    
3615    /^\cģ/
3616    
3617    /(?P<abn>(?P=abn)xxx)/BZ
3618    
3619    /(a\1z)/BZ
3620    
3621    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
3622    
3623    /(?P<abn>(?P=axn)xxx)/BZ
3624    
3625    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
3626    
3627    /-- These tests are here because Perl gets the first one wrong. --/
3628    
3629    /(\R*)(.)/s
3630        \r\n
3631        \r\r\n\n\r
3632        \r\r\n\n\r\n
3633    
3634    /(\R)*(.)/s
3635        \r\n
3636        \r\r\n\n\r
3637        \r\r\n\n\r\n
3638    
3639    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
3640        \r\n
3641        \r\r\n\n\r
3642        \r\r\n\n\r\n
3643    
3644    /-- --/
3645    
3646    /^abc$/BZ
3647    
3648    /^abc$/BZm
3649    
3650    /^(a)*+(\w)/S
3651        aaaaX
3652        ** Failers
3653        aaaa
3654    
3655    /^(?:a)*+(\w)/S
3656        aaaaX
3657        ** Failers
3658        aaaa
3659    
3660    /(a)++1234/SDZ
3661    
3662    /([abc])++1234/SI
3663    
3664    /(?<=(abc)+)X/
3665    
3666    /(^ab)/I
3667    
3668    /(^ab)++/I
3669    
3670    /(^ab|^)+/I
3671    
3672    /(^ab|^)++/I
3673    
3674    /(?:^ab)/I
3675    
3676    /(?:^ab)++/I
3677    
3678    /(?:^ab|^)+/I
3679    
3680    /(?:^ab|^)++/I
3681    
3682    /(.*ab)/I
3683    
3684    /(.*ab)++/I
3685    
3686    /(.*ab|.*)+/I
3687    
3688    /(.*ab|.*)++/I
3689    
3690    /(?:.*ab)/I
3691    
3692    /(?:.*ab)++/I
3693    
3694    /(?:.*ab|.*)+/I
3695    
3696    /(?:.*ab|.*)++/I
3697    
3698    /(?=a)[bcd]/I
3699    
3700    /((?=a))[bcd]/I
3701    
3702    /((?=a))+[bcd]/I
3703    
3704    /((?=a))++[bcd]/I
3705    
3706    /(?=a+)[bcd]/iI
3707    
3708    /(?=a+?)[bcd]/iI
3709    
3710    /(?=a++)[bcd]/iI
3711    
3712    /(?=a{3})[bcd]/iI
3713    
3714    /(abc)\1+/S
3715    
3716    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
3717    
3718    /(?1)(?:(b(*ACCEPT))){0}/
3719        b
3720    
3721    /(?1)(?:(b(*ACCEPT))){0}c/
3722        bc
3723        ** Failers
3724        b
3725    
3726    /(?1)(?:((*ACCEPT))){0}c/
3727        c
3728        c\N
3729    
3730    /^.*?(?(?=a)a|b(*THEN)c)/
3731        ba
3732    
3733    /^.*?(?(?=a)a|bc)/
3734        ba
3735    
3736    /-- --/
3737    
3738    /-- These studied versions are here because they are not Perl-compatible; the
3739        studying means the mark is not seen. --/
3740    
3741    /(*MARK:A)(*SKIP:B)(C|X)/KS
3742        C
3743        D
3744    
3745    /(*:A)A+(*SKIP:A)(B|Z)/KS
3746        AAAC
3747    
3748    /-- --/
3749    
3750    "(?=a*(*ACCEPT)b)c"
3751        c
3752        c\N
3753    
3754    /(?1)c(?(DEFINE)((*ACCEPT)b))/
3755        c
3756        c\N
3757    
3758    /(?>(*ACCEPT)b)c/
3759        c
3760        c\N
3761    
3762    /(?:(?>(a)))+a%/++
3763        %aa%
3764    
3765    /(a)b|ac/++SS
3766        ac\O3
3767    
3768    /(a)(b)x|abc/++
3769         abc\O6
3770    
3771    /(a)bc|(a)(b)\2/
3772        \O3abc
3773        \O4abc
3774    
3775    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
3776    
3777    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
3778    
3779    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
3780    
3781    /(abc)(?1)/SI
3782    
3783    /^(?>a)++/
3784        aa\M
3785        aaaaaaaaa\M
3786    
3787    /(a)(?1)++/
3788        aa\M
3789        aaaaaaaaa\M
3790    
3791    /(?:(foo)|(bar)|(baz))X/SS=
3792        bazfooX
3793        foobazbarX
3794        barfooX
3795        bazX
3796        foobarbazX
3797        bazfooX\O0
3798        bazfooX\O2
3799        bazfooX\O4
3800        bazfooX\O6
3801        bazfooX\O8
3802        bazfooX\O10
3803    
3804    /(?=abc){3}abc/BZ
3805    
3806    /(?=abc)+abc/BZ
3807    
3808    /(?=abc)++abc/BZ
3809    
3810    /(?=abc){0}xyz/BZ
3811    
3812    /(?=(a))?./BZ
3813    
3814    /(?=(a))??./BZ
3815    
3816    /^(?=(a)){0}b(?1)/BZ
3817    
3818    /(?(DEFINE)(a))?b(?1)/BZ
3819    
3820    /^(?=(?1))?[az]([abc])d/BZ
3821    
3822    /^(?!a){0}\w+/BZ
3823    
3824    /(?<=(abc))?xyz/BZ
3825    
3826    /[:a[:abc]b:]/BZ
3827    
3828    /((?2))((?1))/SS
3829        abc
3830    
3831    /((?(R2)a+|(?1)b))/
3832        aaaabcde
3833    
3834    /(?(R)a*(?1)|((?R))b)/
3835        aaaabcde
3836    
3837    /(a+|(?R)b)/
3838    
3839    /^(a(*:A)(d|e(*:B))z|aeq)/C
3840        adz
3841        aez
3842        aeqwerty
3843    
3844    /.(*F)/
3845        \P\Pabc
3846    
3847    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
3848    
3849    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
3850    
3851    /a(*SKIP)c|b(*ACCEPT)|/+SI
3852        a
3853    
3854    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
3855        ax
3856    
3857   %^(?:  'a*(*ACCEPT)b'+
3858   [\x09\x0A\x0D\x20-\x7E]# ASCII      \N\N
3859     | [\xC2-\xDF][\x80-\xBF]# non-overlong 2-byte      abc\N\N
3860     |  \xE0[\xA0-\xBF][\x80-\xBF]# excluding overlongs      bbb\N\N
    | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte  
    |  \xED[\x80-\x9F][\x80-\xBF]# excluding surrogates  
    |  \xF0[\x90-\xBF][\x80-\xBF]{2}# planes 1-3  
    | [\xF1-\xF3][\x80-\xBF]{3}  # planes 4-15  
    |  \xF4[\x80-\x8F][\x80-\xBF]{2}# plane 16  
    )*$%xs  
 <div align="justify"><p>- Im Aufbau -</p><h3 id="aventurien">Aventurien</h3><div style="border: 1px none ; margin: 5px 5px 5px 10px; float:right; width: 100px;"><strong>Navigation</strong> <br /><br /><a href="#aventurien">Aventurien</a><br /><a href="#ferdok">Die Stadt Ferdok</a><br /><a href="#weitere">Weitere Ziele</a></div><p>{mosimage} Aventurien ist ein Kontinent der Welt Dere undAusgangspunkt f&uuml;r die meisten Abenteuer in der Welt von <em>DasSchwarze Auge</em>. Von Nord nach S&uuml;d erstreckt sich derKontinent ca. &uuml;ber 3000 Meilen, von Ost nach West sind esimmerhin noch 2000 Meilen. Von den Tundren Thorwals bis zurW&uuml;ste Khom kann man so ziemlich alle Klimazonen in Aventurienfinden.</p><p>Im Herzen Aventuriens liegt das Kaiserreich, auch das Mittelreichgenannt, mit seiner Hauptstadt Gareth (rot umrandeter Bereich).  DieKultur erinnert entfernt an das mittelalterliche Europa. DieHandlung Drakensangs wird zu gro&szlig;en Teilen im Mittelreichspielen, genauer gesagt, in der Umgebung der Stadt Ferdok (s.u.).Doch auch andere, exotischere Orte sollen Ziel der Reise werden.</p><p>Zahlreiche V&ouml;lker und Rassen bewohnen den Kontinent, allenvoran nat&uuml;rlich die Menschenv&ouml;lker, die die Mehrheit derBewohner stellen. Unter den Menschen gibt es zahlreicheunterschiedliche Kulturen, z. B. die wikinger&auml;hnlichenThorwaler, das Nomadenvolk der Nivesen oder eben dieMittell&auml;nder. Daneben gibt es nat&uuml;rlich nochfantastischere V&ouml;lker wie die Elfen (mit mehrern Untergruppen),Zwerge, Orks und mehr, eben alles, was eine Fantasywelt zu bietenhat.</p><p>&nbsp;</p><h3 id="ferdok">Ferdok</h3><p><a target="_blank" href="images/stories/stadtplan_g.jpg">{mosimage}</a></p><p>Ferdok ist eine Grafenstadt im Mittelreich, etwas westlich derHauptstadt Gareth, und hat etwa 3000 Einwohner. Sie geh&ouml;rt zuden &auml;ltesten menschlichen Siedlungen des Kosch. Im Laufe derGeschichte mu&szlig;te die Stadt jedoch wegen einer &Auml;nderungdes Flu&szlig;laufes des Gro&szlig;en Flu&szlig;es im Jahre 270 BFverlegt werden, da die Stadt in der Bedeutungslosigkeit zu versinkendrohte. Heute liegt Ferdok wieder direkt an der Einm&uuml;ndung desRakula in den Gro&szlig;en Flu&szlig;. Obwohl  die Stadt diefr&uuml;here Bedeutung l&auml;ngst verloren hat, hat sich Ferdok alsein wichtiger Handelshafen etabliert (weltber&uuml;hmt: FerdokerBier). Hier werden die Waren von Gareth umgeschlagen, die &uuml;berdie gro&szlig;e Handelsstra&szlig;e von und nach Ferdok verfrachtetwerden. Ferdok ist damit eines der Tore zum Westen underm&ouml;glicht schnelle Reisen in andere Teile der Aventuriens.</p><p>Verwaltungstechnisch geh&ouml;rt Ferdok zum F&uuml;rstentumKosch, dessen Hauptstadt sie langezeit war. Mittlerweile hat siediesen Status jedoch an Angbar verloren. Trotz seiner wichtigenRolle als Handelsort sind die Bewohner Ferdoks ein eher biederesV&ouml;lkchen und h&auml;ngen der Erinnerung an die ruhmreichereVergangenheit hinterher. Nachts muss man auf den Stra&szlig;enneuerdings aufpassen. Zur Handlungszeit verunsichert n&auml;mlicheine grauenhafte Mordserie die Bewohner Ferdoks und l&auml;sst dieBev&ouml;lkerung nachts nicht richtig schlafen. Einige Bereichesollte man dann grunds&auml;tzlich nicht mehr besuchen, wenn einemdie eigene Gesundheit am Herzen liegt.</p><p>Die Stadt wird eine zentrale Anlaufstelle in Drakensang sein,weswegen sie auch vollst&auml;ndig, nach den Vorgaben desDSA-Regelwerks in das Spiel eingebaut wird. Der Stadtplan (zumVergr&ouml;&szlig;ern anklicken) wurde von Radon Labs dem Regelwerkdirekt entnommen und wird Euch auch f&uuml;r Drakensang gute Diensteleisten.</p><br /><h3 id="weitere">Weitere Reiseziele des Spiels</h3><a target="_blank"href="images/stories/artikel/map.jpg">{mosimage}</a> Insgesamt solles 12 Hauptregionen geben, die jeweils ca. 1 Quadratkilometergro&szlig; sind. Alle diese Regionen unterteilen sich nochmal in&uuml;ber 50 kleinere Gebiete. Bekannt sind neben Ferdok bislang:<ul><li>Avestreu (kleines Dorf s&uuml;d&ouml;stl. von Ferdok)</li><li>Dunkelwald (s&uuml;dl. von Ferdok)</li><li>Ruine Blutberge (s&uuml;dl. von Ferdok, am Rand desDunkelwaldes)</li><li>Moorbr&uuml;ck (s&uuml;dl. des Dunkelwaldes)</li><li>Burg Grimmzahn (westl. von Moorbr&uuml;ck)</li><li>Murolosch (eine Zwergenstadt)</li><li>der Berg Drachensang / Drakensang (im Amboss-Gebirgegelegen)</li></ul><p>&nbsp;</p><p>&nbsp;</p><p>Ausf&uuml;hrlichere Infos:</p><p><a title="Wiki Aventurica" target="_blank"href="http://dsa4.de/wiki">Wiki Aventurica </a>(externer Link)<br /><a href="http://www.eychgras.de/koschwiki/index.php"target="_blank">KoschWiki</a> (externer Link)</p><p>&nbsp;</p></div>  
3861    
3862  / End of testinput2 /  /-- End of testinput2 --/

Legend:
Removed from v.410  
changed lines
  Added in v.697

  ViewVC Help
Powered by ViewVC 1.1.5