From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/13207 Path: news.gmane.org!.POSTED!not-for-mail From: Steffen Nurpmeso Newsgroups: gmane.linux.lib.musl.general Subject: Regex: behaviour of ? after () atom Date: Fri, 07 Sep 2018 15:38:05 +0200 Message-ID: <20180907133805.FZif_%steffen@sdaoden.eu> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1536327301 21492 195.159.176.226 (7 Sep 2018 13:35:01 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 7 Sep 2018 13:35:01 +0000 (UTC) User-Agent: s-nail v14.9.11-35-ge359e701 To: musl@lists.openwall.com Original-X-From: musl-return-13223-gllmg-musl=m.gmane.org@lists.openwall.com Fri Sep 07 15:34:57 2018 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1fyGuW-0005UT-FH for gllmg-musl@m.gmane.org; Fri, 07 Sep 2018 15:34:56 +0200 Original-Received: (qmail 21918 invoked by uid 550); 7 Sep 2018 13:37:03 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 21876 invoked from network); 7 Sep 2018 13:37:02 -0000 Mail-Followup-To: musl@lists.openwall.com, Steffen Nurpmeso OpenPGP: id=EE19E1C1F2F7054F8D3954D8308964B51883A0DD; url=https://ftp.sdaoden.eu/steffen.asc; preference=signencrypt BlahBlahBlah: Any stupid boy can crush a beetle. But all the professors in the world can make no bugs. Xref: news.gmane.org gmane.linux.lib.musl.general:13207 Archived-At: Hello. In perl this is $x="print 1 2"; if($x =~ /^(:[[:space:]]+)?([^[:space:]]+)(.*)$/){ print "<$0> -> <$1> <$2> <$3>\n" } and the result is -> <> < 1 2> Now the same on AlpineLinux edge and musl-1.1.19-r10 with the MUA i maintain, which uses the normal regex stuff and calls it via echo eins=$3 vput vexpr i regex "${3}" \ '^(:[[:space:]]+)?([^[:space:]]+)(.*)$' \ '<\$0> -> <\$1> <\$2> <\$3>' echo i=$i which in C code does if((reflrv = regcomp(&re, argv[2], reflrv))){ ... goto jestr; } fprintf(stderr, "GOING for <%s> -> <%s> %u\n", argv[1],argv[2],n_NELEM(rema)); reflrv = regexec(&re, argv[1], n_NELEM(rema), rema, 0); and overall prints eins=print 1 2 GOING for -> <^(:[[:space:]]+)?([^[:space:]]+)(.*)$> 17 i= -> <> <> <> It works correctly if i remove the ()? atom, so i thought i should report that. Ciao, --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)