Path: csiph.com!xmission!news.snarked.org!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Ben Hanson Newsgroups: comp.compilers Subject: Re: Regular expression string searching & matching Date: Sun, 11 Mar 2018 13:52:53 -0700 (PDT) Organization: Compilers Central Lines: 47 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <18-03-041@comp.compilers> References: <18-03-016@comp.compilers> <18-03-032@comp.compilers> <18-03-034@comp.compilers> <18-03-035@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Date: Sun, 11 Mar 2018 20:52:53 +0000 Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="46062"; mail-complaints-to="abuse@iecc.com" Keywords: lex, comment Posted-Date: 12 Mar 2018 16:19:27 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:1990 > /This/ actually worked for me (one character change): > > [/][*]([^*]|[*]+[^/])*[*]+[/] Your modified regex produces the following state machine: State: 0 [/] -> 1 State: 1 [*] -> 2 State: 2 [^*] -> 2 [*] -> 3 State: 3 [^*/] -> 2 [*] -> 4 [/] -> 5 State: 4 [^*/] -> 2 [*] -> 4 [/] -> 6 State: 5 END STATE State: 6 END STATE [^*] -> 2 [*] -> 3 Which will match /***/a*/ in its entirety, when if should only match /***/ Regards, Ben [Doesn't that depend on whether you interpret the END STATE in state 6 to stop even if there's more input? -John]