1: transcribed from the tcl 8.3 Spencer reg tests 2005-06-06 2 3# Copyright (c) 1998, 1999 Henry Spencer. All rights reserved. 4 5# basic sanity checks 6 7BE abc abc (0,3) 8BE abc def NOMATCH 9BE abc xyabxabce (5,8) 10 11# basic syntax 12 13BE NULL a ENULL 14BEz NULL a (0,0) 15E a| a ENULL 16Ez a| a (0,1) 17E a|b a (0,1) 18E a|b b (0,1) 19E a||b b ENULL 20Ez a||b b (0,1) 21BE ab ab (0,2) 22 23# parentheses 24 25E (a)e ae (0,2)(0,1) 26E (a)e ae (0,2)(0,1) 27B \(a\)b ab (0,2)(0,1) 28E a((b)c) abc (0,3)(1,3)(1,2) 29E a(b)(c) abc (0,3)(1,2)(2,3) 30E a(b ab EPAREN 31B a\(b ab EPAREN 32 33# sigh, we blew it on the specs here... someday this will be fixed in POSIX, 34 35 36# but meanwhile, it's fixed in AEs 37 38E a)b a)b (0,3) 39E a)b a)b (0,3) 40B a\)b a)b EPAREN 41E a(?:b)c abc (0,3) 42E a()b ab ENULL 43Ez a()b ab (0,2)(1,1) 44E a(?:)b ab (0,2) 45E a(|b)c ac ENULL 46Ez a(|b)c ac (0,2)(1,1) 47E a(b|)c abc ENULL 48Ez a(b|)c abc (0,3)(1,2) 49 50# simple one-char matching 51 52 53# general case of brackets done later 54 55BE a.b axb (0,3) 56BEn$ a.b a\nb NOMATCH 57BE$ a.b a\nb (0,3) 58BE a[bc]d abd (0,3) 59BE a[bc]d acd (0,3) 60BE a[bc]d aed NOMATCH 61BE a[^bc]d abd NOMATCH 62BE a[^bc]d aed (0,3) 63BE$ a[^bc]d a\nd (0,3) 64BEn$ a[^bc]d a\nd NOMATCH 65 66# context-dependent syntax 67 68 69# plus odds and ends 70 71B fix reg.dat NOMATCH 72B fix reg.dat NOMATCH 73E fix reg.dat NOMATCH 74B \(*\) fix NOMATCH 75B \(*\) a NOMATCH 76E (*) fix BADRPT 77B ^* ^ NOMATCH 78B ^* fix NOMATCH 79B ^* a NOMATCH 80B ^* ^* NOMATCH 81E ^* ^ (0,0) 82B \(^*\) fix NOMATCH 83B \(^*\) a NOMATCH 84E (^*) fix (0,0)(0,0) 85B $* $ (0,1) 86B $* a$z (0,0) 87B $* fix (0,0) 88B $* a*z (0,0) 89B $* $* (0,1) 90B $* a$*z (0,0) 91E $* $ (0,0) 92BE ^b ^ NOMATCH 93BE ^b ^b NOMATCH 94B x^ x^ (0,2) 95E x^ x^ NOMATCH 96Ebn$ ^ x\nb (2,2) 97En$ \n^ x\nb (1,2) 98B \(^b\) ^b NOMATCH 99E (^b) ^b NOMATCH 100BE x$ x (0,1) 101B \(x$\) x (0,1)(0,1) 102E (x$) x (0,1)(0,1) 103B x$y x$y (0,3) 104E x$y x$y NOMATCH 105BE x$y xy NOMATCH 106En$ x$\n x\n (0,2) 107E + x BADRPT 108E ? x BADRPT 109 110# simple quantifiers 111 112BE a* aa (0,2) 113BE a* b (0,0) 114E a+ aa (0,2) 115E a?b ab (0,2) 116E a?b zb (1,2) 117E a?b b (0,1) 118B fix reg.dat NOMATCH 119E fix reg.dat NOMATCH 120B a** aaa (0,3) 121E a** aaa (0,3) 122B a**b aab (0,3) 123E a**b aab (0,3) 124B fix reg.dat NOMATCH 125E fix reg.dat NOMATCH 126E a++ aaa BADRPT 127E a?+ aaa BADRPT 128E a?* aaa (0,1) 129E a+* aaa (0,3) 130E a*+ aaa BADRPT 131 132# braces 133 134E a0 a1 NOMATCH 135E a0 a1 NOMATCH 136E a1 a0 NOMATCH 137E a1 a2 NOMATCH 138E a{257} x NOMATCH 139E a{1000} x NOMATCH 140E a{1 x EBRACE 141E a{1n} x BADBR 142B a{b a{b (0,3) 143E a{b a{b BADBR 144B a{ a{ (0,2) 145E a{ a{ EBRACE 146B a\0b a\1\b BADESC 147B a\{0,1 x EBRACE 148E a{0,1\ x BADBR 149E a{0}b ab (1,2) 150E a0b a0b (0,3) 151E a0b a1b NOMATCH 152E a0b a2b NOMATCH 153E a0b a2b NOMATCH 154E a0b ab NOMATCH 155E a1b a1b (0,3) 156E a1b a3b NOMATCH 157E a1b a3b NOMATCH 158E a1b ab NOMATCH 159E a2b a3b NOMATCH 160E a2b a3b NOMATCH 161E a2b ab NOMATCH 162E a2b ab NOMATCH 163 164# brackets 165 166BE a[bc] ac (0,2) 167BE a[-] a- (0,2) 168BE a[[.-.]] a- (0,2) 169BE a[0-[.9.]] a2 (0,2) 170BE a[[=x=]] ax (0,2) 171BE a[[=x=]] ay NOMATCH 172BE a[[=x=]] az NOMATCH 173BE a[0-[=x=]] x ERANGE 174BE a[[:digit:]] a0 (0,2) 175BE a[[:woopsie:]] x ECTYPE 176BE a[[:digit:]] ab NOMATCH 177BE a[0-[:digit:]] x NOMATCH 178BE [[:<:]]a a (0,1) 179BE a[[:>:]] a (0,1) 180BE a[[..]]b x ECOLLATE 181BE a[[==]]b x ECOLLATE 182BE a[[::]]b x ECTYPE 183BE a[[.a x ECOLLATE 184BE a[[=a x ECOLLATE 185BE a[[:a x ECTYPE 186BE a[ x EBRACK 187BE a[b x EBRACK 188BE a[b- x EBRACK 189BE a[b-c x EBRACK 190BE a[b-c] ab (0,2) 191BE a[b-b] ab (0,2) 192BE a[1-2] a2 (0,2) 193BE a[c-b] x ERANGE 194BE a[a-b-c] x ERANGE 195BE a[--?]b a?b (0,3) 196BE a[---]b a-b (0,3) 197BE a[]b]c a]c (0,3) 198BE a[]]b a]b (0,3) 199BE a[[b]c a[c (0,3) 200BE a[[b]c abc (0,3) 201 202B a[\]]b a]b NOMATCH 203E a[\]]b a]b NOMATCH 204B a[\]]b a\]b (0,4) 205E a[\]]b a\]b (0,4) 206B a[\\]b a\b (0,3) 207E a[\\]b a\b (0,3) 208E a[\\]b a\b (0,3) 209B a[\Z]b a\b (0,3) 210E a[\Z]b a\b (0,3) 211 212Bv a[\]]b a]b NOMATCH 213Ev a[\]]b a]b NOMATCH 214Bv a[\]]b a\]b (0,4) 215Ev a[\]]b a\]b (0,4) 216Bv a[\\]b a\b (0,3) 217Ev a[\\]b a\b (0,3) 218Ev a[\\]b a\b (0,3) 219Bv a[\Z]b a\b (0,3) 220Ev a[\Z]b a\b (0,3) 221 222BE a[[\b]c a[c (0,3) 223BE a[[\b]c abc (0,3) 224BE a[[\\b]c abc (0,3) 225BE a[[\Z]c aZc (0,3) 226BE a[[\b]c a\c (0,3) 227BE a[[\\b]c a\c (0,3) 228BE a[[\b]*c a[c (0,3) 229BE a[[\\b]*c a[c (0,3) 230BE a[[\b]*c a[bc (0,4) 231BE a[[\\b]*c a[bc (0,4) 232BE a[[\b]*c a[c (0,3) 233BE a[[\\b]*c a[c (0,3) 234BE a[[\b]*c ab[c (0,4) 235BE a[[\\b]*c ab[c (0,4) 236E$ a[\xfe-\a][\xff- a\x02\xfb ERANGE 237 238BEv a[[\b]c a[c (0,3) 239BEv a[[\b]c abc NOMATCH 240BEv a[[\\b]c abc (0,3) 241BEv a[[\Z]c aZc (0,3) 242BEv a[[\b]c a\c NOMATCH 243BEv a[[\\b]c a\c (0,3) 244BEv a[[\b]*c a[c (0,3) 245BEv a[[\\b]*c a[c (0,3) 246BEv a[[\b]*c a[bc NOMATCH 247BEv a[[\\b]*c a[bc (0,4) 248BEv a[[\b]*c a[c (0,3) 249BEv a[[\\b]*c a[c (0,3) 250BEv a[[\b]*c ab[c NOMATCH 251BEv a[[\\b]*c ab[c (0,4) 252E$v a[\xfe-\a][\xff- a\x02\xfb ERANGE 253 254# anchors and newlines 255 256BE ^a a (0,1) 257BEb ^a a NOMATCH 258BE ^ a (0,0) 259BE a$ aba (2,3) 260BEe a$ a NOMATCH 261BE $ ab (2,2) 262BEn ^a a (0,1) 263BEn$ ^a b\na (2,3) 264BEnb$ ^a a\na (2,3) 265BEn a$ a (0,1) 266BEn$ a$ a\nb (0,1) 267BEn$ a$ a\na (0,1) 268BEn$ b$ a\nb (2,3) 269B ^^ a NOMATCH 270B ^^ ^ (0,1) 271E ^^ a (0,0) 272E ^^ ^ (0,0) 273B $$ $ (0,1) 274E $$ $ (1,1) 275B $$ a NOMATCH 276E $$ a (1,1) 277BE ^$ NULL (0,0) 278BE ^$ a NOMATCH 279BEn$ ^$ a\n\nb (2,2) 280B $^ NULL NOMATCH 281E $^ NULL (0,0) 282B $^ $^ (0,2) 283E $^ $^ NOMATCH 284E \Aa a (0,1) 285B \Aa a (0,1) 286Bn$ \\Aa b\na NOMATCH 287B a\Z a (0,1) 288E a\Z a (0,1) 289Bn$ a\\Z a\nb NOMATCH 290En$ a\\Z a\nb NOMATCH 291E ^* x (0,0) 292E $* x (0,0) 293E \A* x BADRPT 294E \Z* x BADRPT 295 296# boundary constraints 297 298BE [[:<:]]a a (0,1) 299BE [[:<:]]a -a (1,2) 300BE [[:<:]]a ba NOMATCH 301BE a[[:>:]] a (0,1) 302BE a[[:>:]] a- (0,1) 303BE a[[:>:]] ab NOMATCH 304B \<a a (0,1) 305B \<a ba NOMATCH 306B a\> a (0,1) 307B a\> ab NOMATCH 308E \ya a BADESC 309E \ya ba BADESC 310E a\y a BADESC 311E a\y ab BADESC 312E a\Y ab BADESC 313E a\Y a- BADESC 314E a\Y a BADESC 315E -\Y -a BADESC 316E -\Y -% BADESC 317E \Y- a- BADESC 318E fix reg.dat NOMATCH 319E [[:>:]]* x BADRPT 320B \<* x BADRPT 321B \>* x BADRPT 322E \y* x BADESC 323E \Y* x BADESC 324E \ma a BADESC 325E \ma ba BADESC 326E a\M a BADESC 327E a\M ab BADESC 328E \Ma a BADESC 329E a\m a BADESC 330 331# character classes 332 333E a\db a0b (0,3) 334E a\db axb NOMATCH 335E a\Db a0b NOMATCH 336E a\Db axb (0,3) 337E$ a\\sb a b (0,3) 338E$ a\\sb a\tb (0,3) 339E$ a\\sb a\nb (0,3) 340E a\sb axb NOMATCH 341E a\Sb axb (0,3) 342E$ a\\Sb a b NOMATCH 343E a\wb axb (0,3) 344E a\wb a-b NOMATCH 345E a\Wb axb NOMATCH 346E a\Wb a-b (0,3) 347E \y\w+z\y adze-guz BADESC 348 349E a[\d]b a1b NOMATCH 350E$ a[\\s]b a b NOMATCH 351E a[\w]b axb NOMATCH 352 353Ev a[\d]b a1b (0,3) 354E$v a[\\s]b a b (0,3) 355Ev a[\w]b axb (0,3) 356 357# escapes 358 359BE$ a\\ x EESCAPE 360E a\<b a<b NOMATCH 361Ee a\<b a<b NOMATCH 362B a\wb awb (0,3) 363Ee a\wb awb (0,3) 364E$ a\\ab a\ab (0,3) 365E$ a\\bb a\bb NOMATCH 366E a\Bb a\b NOMATCH 367E$ a\\chb a\bb (0,3) 368E$ a\\cHb a\bb (0,3) 369E$ a\\e a\e (0,2) 370E$ a\\fb a\fb (0,3) 371E$ a\\nb a\nb (0,3) 372E$ a\\rb a\rb (0,3) 373E$ a\\tb a\tb (0,3) 374E$ a\\u0008x a\bx BADESC 375E a\u008x x BADESC 376E$ a\\u00088x a\b8x BADESC 377E$ a\\U00000008x a\bx BADESC 378E a\U0000008x x BADESC 379E$ a\\vb a\vb (0,3) 380E$ a\\x08x a\bx (0,3) 381E a\xq x NOMATCH 382E a\z x NOMATCH 383E$ a\\010b a\bb (0,3) 384 385# back references 386 387 388# ugh 389 390E a(b*)c\1 abbcbb (0,6)(1,3) 391E$ a(b*)c\x01 ac NOMATCH 392E a(b*)c\1 abbcb NOMATCH 393E a(b*)\1 abbcbb (0,3)(1,2) 394E a(b|bb)\1 abbcbb (0,3)(1,2) 395E a([bc])\1 abb (0,3)(1,2) 396E a([bc])\1 abc NOMATCH 397E a([bc])\1 abcabb (3,6)(4,5) 398E a([bc])*\1 abc NOMATCH 399E a([bc])\1 abB NOMATCH 400Ei a([bc])\1 abB (0,3)(1,2) 401E a([bc])\1+ abbb (0,4)(1,2) 402E a([bc])\13 a([bc])\14 NOMATCH 403E a([bc])\13 a([bc])\14 NOMATCH 404E a([bc])\1* abbb (0,4)(1,2) 405E a([bc])\1* ab (0,2)(1,2) 406E a([bc])(\1*) ab (0,2)(1,2)(2,2) 407E a((b)\1) x ESUBREG 408E a(b)c\2 x ESUBREG 409B a\(b*\)c\1 abbcbb (0,6)(1,3) 410 411# octal escapes vs back references 412 413 414# initial zero is always octal 415 416E$ a\\010b a\bb (0,3) 417E$ a\\0070b a\a0b (0,4) 418E$ a\\07b a\ab BADESC 419E$ a(b)(b)(b)(b)(b)(b)(b)(b)(b)(b)\\07c abbbbbbbbbb\ac BADESC 420 421# a single digit is always a backref 422 423E a\7b x ESUBREG 424 425# otherwise it's a backref only if within range (barf!) 426 427E$ a\\10b a\bb ESUBREG 428E a\101b aAb (0,3) 429E a(b)(b)(b)(b)(b)(b)(b)(b)(b)(b)\10c abbbbbbbbbbbc NOMATCH 430 431# but we're fussy about border cases -- guys who want octal should use the zero 432 433E a((((((((((b\10))))))))))c x ESUBREG 434 435# BREs don't have octal, EEs don't have backrefs 436 437E$ a\\12b a\nb ESUBREG 438B a\12b x ESUBREG 439Ee a\12b a12b ESUBREG 440 441# expanded syntax 442 443Ec a b c abc (0,3) 444Ec$ a b #oops\nc\td abcd (0,4) 445Ec$ a\\ b\\\tc a b\tc (0,5) 446Ec$ a b\\#c ab#c BADESC 447Ec a b[c d]e ab e (0,4) 448Ec a b[c#d]e ab#e (0,4) 449Ec a b[c#d]e abde (0,4) 450Bc ab{ d ab{d (0,4) 451Ec ab{ d ab{d BADBR 452Ec$ ab 1 c ab 2 c NOMATCH 453 454# misc syntax 455 456E a(?#comment)b ab (0,2) 457 458# unmatchable Es 459 460E a^b ab NOMATCH 461 462# case independence 463 464BEi ab Ab (0,2) 465BEi a[bc] aC (0,2) 466BEi a[^bc] aB NOMATCH 467BEi a[b-d] aC (0,2) 468BEi a[^b-d] aC NOMATCH 469 470# directors and embedded options 471 472BE fix reg.dat NOMATCH 473L fix reg.dat NOMATCH 474B ***=a*b a*b NOMATCH 475E ***=a*b a*b BADRPT 476L ***=a*b ***=a*b (0,7) 477B ***:\w+ ab NOMATCH 478Ee ***:\w+ ab BADRPT 479BE ***:***=a*b x BADRPT 480B ***:(?b)a+b a+b NOMATCH 481E ***:(?b)a+b a+b BADRPT 482E (?b)a+b a+b BADRPT 483Ee (?b)\w+ x BADRPT 484B (?b)\w+ (?b)w+ (0,6) 485Ei (?c)a a BADRPT 486Ei (?c)a x BADRPT 487E (?e)\W+ WW BADRPT 488E (?i)a+ Aa (0,2) 489E$ (?m)a.b a\nb NOMATCH 490E$ (?m)^b a\nb (2,3) 491E$ (?n)a.b a\nb BADRPT 492E$ (?n)^b a\nb BADRPT 493E$ (?p)a.b a\nb (0,3) 494E$ (?p)^b a\nb NOMATCH 495E (?q)a+b a+b BADRPT 496En$ (?s)a.b a\nb (0,3) 497Ex$ (?t)a b a b BADRPT 498E$ (?w)a.b a\nb BADRPT 499E$ (?w)^b a\nb BADRPT 500E$ (?x)a b ab (0,2) 501E (?z)ab x BADRPT 502E (?ici)a+ Aa BADRPT 503E (?i)(?q)a+ x BADRPT 504E (?q)(?i)a+ (?i)a+ BADRPT 505E (?qe)a+ a BADRPT 506Ex$ (?q)a b a b BADRPT 507E$ (?qx)a b a b BADRPT 508E (?qi)ab Ab BADRPT 509 510# capturing 511 512E a(b)c abc (0,3)(1,2) 513E a(?:b)c xabc (1,4) 514E a((b))c xabcy (1,4)(2,3)(2,3) 515E a(?:(b))c abcy (0,3)(1,2) 516E a((?:b))c abc (0,3)(1,2) 517E a(?:(?:b))c abc (0,3) 518E$ a(b)(0,)c ac NOMATCH 519E a(b)c(d)e abcde (0,5)(1,2)(3,4) 520E (b)c(d)e bcde (0,4)(0,1)(2,3) 521E a(b)(d)e abde (0,4)(1,2)(2,3) 522E a(b)c(d) abcd (0,4)(1,2)(3,4) 523E (ab)(cd) xabcdy (1,5)(1,3)(3,5) 524E a(b)?c xabcy (1,4)(2,3) 525E a(b)?c xacy (1,3)(?,?) 526E a(b)?c(d)?e xabcdey (1,6)(2,3)(4,5) 527E a(b)?c(d)?e xacdey (1,5)(?,?)(3,4) 528E a(b)?c(d)?e xabcey (1,5)(2,3)(?,?) 529E a(b)?c(d)?e xacey (1,4)(?,?)(?,?) 530E a(b)*c xabcy (1,4)(2,3) 531E a(b)*c xabbbcy (1,6)(4,5) 532E a(b)*c xacy (1,3)(?,?) 533E a(b*)c xabbbcy (1,6)(2,5) 534E$ a(b*)c xacy (1,3)(2,2) 535E a(b)+c xacy NOMATCH 536E a(b)+c xabcy (1,4)(2,3) 537E a(b)+c xabbbcy (1,6)(4,5) 538E a(b+)c xabbbcy (1,6)(2,5) 539E$ a(b)2c a(b)3c NOMATCH 540E$ a(b)2c a(b)3c NOMATCH 541E$ a(b)2c a(b)3c NOMATCH 542E$ \\y(\\w+)\\y -- abc- BADESC 543E a((b|c)d+)+ abacdbd (2,7)(5,7)(5,6) 544E (.*).* abc (0,3)(0,3) 545E$ (a*)* bc (0,0)(0,0) 546 547# multicharacter collating elements 548 549 550# again ugh 551 552{C C 553 554BE a[c]e ace (0,3) 555BE a[c]h ach (0,3) 556BE a[[.ch.]] ach ECOLLATE 557BE a[[.ch.]] ace ECOLLATE 558BE a[c[.ch.]] ac ECOLLATE 559BE a[c[.ch.]] ace ECOLLATE 560BE a[c[.ch.]] ache ECOLLATE 561BE a[^c]e ace NOMATCH 562BE a[^c]e abe (0,3) 563BE a[^c]e ache NOMATCH 564BE a[^[.ch.]] ach ECOLLATE 565BE a[^[.ch.]] ace ECOLLATE 566BE a[^[.ch.]] ac ECOLLATE 567BE a[^[.ch.]] abe ECOLLATE 568BE a[^c[.ch.]] ach ECOLLATE 569BE a[^c[.ch.]] ace ECOLLATE 570BE a[^c[.ch.]] ac ECOLLATE 571BE a[^c[.ch.]] abe ECOLLATE 572BE a[^b] ac (0,2) 573BE a[^b] ace (0,2) 574BE a[^b] ach (0,2) 575BE a[^b] abe NOMATCH 576 577} 578 579# lookahead constraints 580 581E a(?=b)b* ab (0,2) 582E a(?=b)b* a NOMATCH 583E a(?=b)b*(?=c)c* abc (0,3) 584E a(?=b)b*(?=c)c* ab NOMATCH 585E a(?!b)b* ab NOMATCH 586E a(?!b)b* a (0,1) 587E (?=b)b b (0,1) 588E (?=b)b a NOMATCH 589 590# non-greedy quantifiers 591 592E ab+? abb (0,2) 593E ab+?c abbc (0,4) 594E ab*? abb (0,1) 595E ab*?c abbc (0,4) 596E ab?? ab (0,1) 597E ab??c abc (0,3) 598E$ ab2? ab4? (0,2) 599E$ ab2?c ab4?c NOMATCH 600E 3z* 123zzzz456 (2,7) 601E 3z*? 123zzzz456 (2,3) 602E z*4 123zzzz456 (3,8) 603E z*?4 123zzzz456 (3,8) 604 605# mixed quantifiers 606 607 608# this is very incomplete as yet 609 610 611# should include | 612 613E ^(.*?)(a*)$ xyza (0,4)(0,3)(3,4) 614E ^(.*?)(a*)$ xyzaa (0,5)(0,3)(3,5) 615E$ ^(.*?)(a*)$ xyz (0,3)(0,3)(3,3) 616 617# tricky cases 618 619 620# attempts to trick the matcher into accepting a short match 621 622E (week|wee)(night|knights) weeknights (0,10)(0,3)(3,10) 623E a(bc*).*\1 abccbccb (0,8)(1,2) 624E a(b.[bc]*)+ abcbd (0,5)(3,5) 625 626# implementation misc. 627 628 629# duplicate arcs are suppressed 630 631E a(?:b|b)c abc (0,3) 632 633# make color/subcolor relationship go back and forth 634 635BE [ab][ab][ab] aba (0,3) 636BE [ab][ab][ab][ab][ab][ab][ab] abababa (0,7) 637 638# boundary busters etc. 639 640 641# color-descriptor allocation changes at 10 642 643BE abcdefghijkl abcdefghijkl (0,12) 644 645# so does arc allocation 646 647E a(?:b|c|d|e|f|g|h|i|j|k|l|m)n agn (0,3) 648 649# subexpression tracking also at 10 650 651E a(((((((((((((b)))))))))))))c abc (0,3)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2)(1,2) 652 653# state-set handling changes slightly at unsigned size (might be 64...) 654 655 656# (also stresses arc allocation) 657 658E$ ab1c ab100c NOMATCH 659E$ ab1c ab100c NOMATCH 660E$ ab1c ab100c NOMATCH 661 662# force small cache and bust it, several ways 663 664E \w+abcdefgh xyzabcdefgh (0,11) 665E \w+abcdefgh xyzabcdefgh (0,11) 666E \w+abcdefghijklmnopqrst xyzabcdefghijklmnopqrst (0,23) 667E \w+(abcdefgh)? xyz (0,3)(?,?) 668E \w+(abcdefgh)? xyzabcdefg (0,10)(?,?) 669E \w+(abcdefghijklmnopqrst)? xyzabcdefghijklmnopqrs (0,22)(?,?) 670 671# incomplete matches 672 673E$ def abc NOMATCH 674E$ bcd abc NOMATCH 675E$ abc abab NOMATCH 676E$ abc abdab NOMATCH 677E abc abc (0,3) 678E abc abc (0,3) 679E abc xyabc (2,5) 680E abc xyabc (2,5) 681E$ abc+ xyab NOMATCH 682E abc+ xyabc (2,5) 683E abc+ xyabc (2,5) 684E abc+ xyabcd (2,5) 685E abc+ xyabcd (2,5) 686E abc+ xyabcdd (2,5) 687E abc+ xyabcdd (2,5) 688E$ abc+? xyab NOMATCH 689 690# the retain numbers in these two may look wrong, but they aren't 691 692E abc+? xyabc (2,5) 693E abc+? xyabc (2,5) 694E abc+? xyabcc (2,5) 695E abc+? xyabcc (2,5) 696E abc+? xyabcd (2,5) 697E abc+? xyabcd (2,5) 698E abc+? xyabcdd (2,5) 699E abc+? xyabcdd (2,5) 700E abcd|bc xyabc (3,5) 701E abcd|bc xyabc (3,5) 702En$ .*k xx\nyyy NOMATCH 703 704# misc. oddities and old bugs 705 706BE fix reg.dat NOMATCH 707E a?b* abb (0,3) 708E a?b* bb (0,2) 709BE a*b aab (0,3) 710BE ^a*b aaaab (0,5) 711BE [0-6][1-2][0-3][0-6][1-6][0-6] 010010 (0,6) 712 713# temporary REG_BOSONLY kludge 714 715E abc abcd (0,3) 716E abc xabcd (1,4) 717 718# back to normal stuff 719 720E$ (?n)^(?![t#])\\S+ tk\n\n#\n#\nit0 BADRPT 721