From owner-freebsd-hackers@freebsd.org Sat Apr 15 06:03:13 2017 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35BC8D3ECE3 for ; Sat, 15 Apr 2017 06:03:13 +0000 (UTC) (envelope-from kevans91@ksu.edu) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0069.outbound.protection.outlook.com [104.47.32.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CC9A938A; Sat, 15 Apr 2017 06:03:12 +0000 (UTC) (envelope-from kevans91@ksu.edu) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ksu.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=VJFfAlO+msErk2NxE7A4+/32btE1s8PRk6PbvaBiLAQ=; b=ER5GG7hNJuYmtitJHdnkqtoQpUY4w8HrG//ter3WGuylaw2/L0tADqlN2YNJy7O2xbsb1JtEyIJIZZcMIYonLJzASk8fp0lMOlUTkrzQjztE7pSJwQq41BCXRI2h/QMkCwHwRF3VnxOuHZyeTBOFkLLA9r5VxfYTuvU3ggYYXMg= Received: from SN1PR05CA0024.namprd05.prod.outlook.com (10.163.68.162) by SN1PR0501MB2047.namprd05.prod.outlook.com (10.163.227.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.5; Sat, 15 Apr 2017 06:03:09 +0000 Received: from BL2NAM02FT044.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e46::202) by SN1PR05CA0024.outlook.office365.com (2a01:111:e400:5197::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.6 via Frontend Transport; Sat, 15 Apr 2017 06:03:09 +0000 Authentication-Results: spf=pass (sender IP is 129.130.18.151) smtp.mailfrom=ksu.edu; freebsd.org; dkim=none (message not signed) header.d=none;freebsd.org; dmarc=bestguesspass action=none header.from=ksu.edu; Received-SPF: Pass (protection.outlook.com: domain of ksu.edu designates 129.130.18.151 as permitted sender) receiver=protection.outlook.com; client-ip=129.130.18.151; helo=ome-vm-smtp2.campus.ksu.edu; Received: from ome-vm-smtp2.campus.ksu.edu (129.130.18.151) by BL2NAM02FT044.mail.protection.outlook.com (10.152.77.35) with Microsoft SMTP Server id 15.1.1019.14 via Frontend Transport; Sat, 15 Apr 2017 06:03:08 +0000 Received: from calypso.engg.ksu.edu (calypso.engg.ksu.edu [129.130.43.181]) by ome-vm-smtp2.campus.ksu.edu (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id v3F638fa015535; Sat, 15 Apr 2017 01:03:08 -0500 Received: by calypso.engg.ksu.edu (Postfix, from userid 110) id 57FA3248319; Sat, 15 Apr 2017 01:03:08 -0500 (CDT) Received: from mail-wr0-f179.google.com (mail-wr0-f179.google.com [209.85.128.179]) by calypso.engg.ksu.edu (Postfix) with ESMTPA id D7499248318; Sat, 15 Apr 2017 01:03:05 -0500 (CDT) Received: by mail-wr0-f179.google.com with SMTP id o21so59175369wrb.2; Fri, 14 Apr 2017 23:03:05 -0700 (PDT) X-Gm-Message-State: AN3rC/76pMIK9NG8BnohSPllYBvmW1WO1W44i9cAwoZYsR2xHZa3tU3O Rqifv3LaiskvMXRoQtYEsin1WDU/zw== X-Received: by 10.223.154.54 with SMTP id z51mr9936411wrb.76.1492236182773; Fri, 14 Apr 2017 23:03:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.39.134 with HTTP; Fri, 14 Apr 2017 23:02:42 -0700 (PDT) In-Reply-To: References: From: Kyle Evans Date: Sat, 15 Apr 2017 01:02:42 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Replacing libgnuregex To: CC: Pedro Giffuni , Ed Maste X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:129.130.18.151; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39850400002)(39410400002)(39400400002)(39450400003)(39840400002)(39860400002)(2980300002)(438002)(24454002)(69234005)(377454003)(189002)(199003)(9896002)(61266001)(55446002)(512874002)(93516999)(59536001)(189998001)(6306002)(9686003)(966004)(84326002)(6246003)(6916009)(54906002)(236005)(2950100002)(229853002)(606005)(63696999)(53386004)(54356999)(86362001)(110136004)(2906002)(42186005)(90966002)(50986999)(98316002)(45336002)(88552002)(2351001)(46386002)(4326008)(76176999)(356003)(38730400002)(3480700004)(450100002)(7116003)(8576002)(221733001)(5660300001)(61726006)(8936002)(106466001)(305945005)(8676002)(7906003)(75432002)(55456009); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR0501MB2047; H:ome-vm-smtp2.campus.ksu.edu; FPR:; SPF:Pass; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2NAM02FT044; 1:NH6RnNj+T4wkRW0TOTpG0r124MwsOh87KShcjrdSTufLAfUgAa+IwVurvj6bgjGTNZAPi6f2NXiXujzoIdrGX8AG9INQwcMvuSs9MLdoINTEkRmr9aAegScpqxbcS93vlWYNjQ3f3ELC2XKT15GHqMbniRiiInvpXUdvawJrk0x7P/HQccoR0nN3WeFrbGye7zME4Qaue1KuOjtYYaOMUV8jARAI2E1QZEq86/kAQ2UsL3hhsHx+/UpkAD4+hvv/Hbux5cNXd/9Bs2Mx50tIq+yNoTFUXnyjJYKifKaAvCGp5wVpOH3O6rbdbQQd8/fRebMOrCCav9IKvP4WhTIc+89VW35FSnoFD6v9G9YHVzfEeUWlRJv35a/VjuodVGK9Mnr7x0/lqqS7XrGPZYgm/RsfWLeCTT8HYHp6bwFAQ8A2dSZ/VyfnYcIsfVi093PMGlKDbVYRoI6r+nHpqTwp3LaoB9JfdtIJA0VbYm9w05i+VNhl3n2EJJzABKeExeNMtwAyBA2XyTaDxMG7vH/6/JO685HkpGTmt/xvXeXmfMQ= X-MS-Office365-Filtering-Correlation-Id: 420d314f-af14-47ab-f3c9-08d483c51772 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081); SRVR:SN1PR0501MB2047; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2047; 3:mqqXYen4PwoqUFaO1T5x2QaeaUmW08HGR2EtehvxZRVauRZNmVi/Rz/IX+f29/2KEohppoihD2o9qWfFDyAdCpcv7cO3nNr/mIeHTN/tg/OnIahXacWMw78R30hnszEjMd+rlN/CSnE5L2U0uvhUF2LM42+YMPo4B/oecCttT6YUwswfYWnS4zPYBRpQH3ZNi0B2Upl0qwhK6dV6pCj43j7imoOxqiqkiLSSB/fahVzvVv1NdE/IhdJT/YfovUNHZMBCLW1M0oGygLnsbUAf+3q+p7F8wvyBQTbnzBhx15otHk+Fs2R4dew9LkuHr1ThB+GZj/5YunQdJkqKI4i2IwXgBNo+nMlVeIzHL/GAjt2wM9n4COxkNW5Y36H68gLmLxycMp0Oe3yZigkgedOJjGBn6fxFCXI/ZbvDXfSHOBU0qVf3Pmf5Vcln5PP05Xgj7AIeuGClpxES/QBgGQ43zFfItd5hIomG4WJL2mXJo+sjueCSrsiCqblaYU6toW01 X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2047; 25:yLAPJsfnM+FVvA9nMZedDqwZlYARdDp0JaICeV+T0Jh8KyqfKWukrp8TkPH2OEYaWAjc9l3viapk6g0c4BlVJMinMpyJHbctXntXANV3hxI8zLGWi7NZpSm+HNljkVOzcBq5IVri24/Rh7+NxxnNDYeYdAfERFIWHRWqVcifMpXjC0gJQtzynxWuoBwbAoFhISBiD6C3YE6jjLllPkqye8NL7XshdbXSFArxP0MTSd6DZHN08lx+KqbXaFVW1/gSnX8ZFawJ102eVqtzYrMVMU/x29qeXGogGk5MH5xddU0DPNDYTF02OdBrYVHknxSGW73yDWT1jkMCNq3OmxPrCmEpRVRj4zmN6RvJyK8pc6beRuQxH5iqdfM1wdgSjLeAlYUUVJdpSo4DTBMnFG6zIwnNRiJ4jGvpZUYPK2cX20svSPLJHOe4SfXXGhXWEUWl6NJWix2acYLkUzV5v2ArwQ==; 31:HeCTC/jg5OsZQEfSRJOiWXImusR5tDOpPRvZPhQPPSd61Qw+x2iCyP/yGvwgoY4IaR5z0sDij7ZCEdRW2skbpPD5muNXi9xMpVnkkRLNCPQ9vPKIhGqIFltQJorKWHXjnmDTZ+Vx6PA4HGRjraVpeisZoM2bx6tfAIoBq6i760rEXCGNe0agbuR0nedtfSZXb/lHXmxBMInGveZGBPXdwPeSGsxMBz0WVMhdhg2B275AOpoKExGpXwWbPKUkj/04wZaXbL59u+uFXL977i4fNA== X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2047; 20:Vmh7jyWOCwZ2juiuSddPTSBEukAgfd9XiszhCHR1nhkCf+ai38rEcWw2EgQZ7DEHuUaxRENDuQBSeTy5+rqPVU2tRO70H67obpggqJy0k+aNleZZ8GLIfNGj6zUopIzs35pwua8tRf6pMbo6AwZv9SAvnJSDC6nNGRynhaigehn4x1zVybEjJn7Cq5HlJaYSDO2zVzfWSH7U3bNZiQh97SzB7nz47DeBkTrwT+dcr1E7Tyqt5UXXk+6G7XgNhn8L2ePFpmA5vx3jFQq0HlJP5eyT1QyF6HL2wbsgmASzhlQLP7tQ58QgOWR1Nrk6aGz6cFlVWYirQ5lI3pjDGIe3jxCHexwXoc8NKaMHEP/tI3jtqKcO/xeqX/QC4Rr4s52/Q35hQUhgLHzxnELj5ZJ82IyI/bfN7vlSbgCZNiJDvHeBNvS98eg4xEas38L5K3aWReb7PoIThie1kkwq3RkSLpLYr7HsgYbUi6KeBo2I4mjX5oWzW09pmlTr78GgI5/E X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(112903893386949); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(13015025)(13018025)(13017025)(13024025)(13023025)(93006095)(93004095)(10201501046)(3002001)(6041248)(20161123555025)(20161123562025)(20161123564025)(201703131423075)(201702281529075)(201702281528075)(201703061421075)(20161123560025)(6072148); SRVR:SN1PR0501MB2047; BCL:0; PCL:0; RULEID:; SRVR:SN1PR0501MB2047; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2047; 4:DdInQOExtNcSzi5XEWJj4IA7xrLNRBbStHVn+bmeR/xnDgoKhyKR9vGJd9atkWx6wPEUxv/+hrnZquWZZdpCq2QqeC2Ys1w8i5jcvzIdSPntRcE1WqJY5NP2sdFo6LXidSXwLSlMLunWC1BbBCiiFmx6S8IOPR4nfbRXe9VKGxu32GK86IJIg9FysE4bRdE84tdeTbpZYzBCUhxNLAX8rTqamyPCV3OVOuOFasJB+QvRTqR/Wh3ZIPV2mkKNMnZ+KsYYMq8G0n1lW+gfHOMQAM6GZl0gZlyihb1U9nq0txB6HcFvfllMpJVDZIMD0QxhaEkRhENXWdh+nqgtQo2QyXL2SCw3OWrMg3jfTofGEIs6/BFSueZ0YXHinKO3woRGWljrTXDWBAGAp33rjGYGJIFFRu9SR0Xfa/XCBhcoMA6ZniHLqkkMG7J7g+SQq0/aK5p6dIu2GqP1ybk1eLLciCIFo0pvq37rcGz/RPuMhQj89ajRsm2wqyY8392d3vDvUbFz74mOb99Z4PEWcE4ZYPgGAWa1wbunRv8Da0BksL/T/0c/qfwK2+eOc0CeXuAWYKhRj4GcvR3GMm7NPfPhBX0hJnR4DL3ChuQIptDHnhhea7E/TRwXFqO56bjjafKeKxByPGlw09x4XvXvrYfzcAgbaXTgMIkmpe2Plc+GTMOhySEfV6X6I6Tz5cEOA3+RWfCRBO/0ba93wOLR+X3jva81saL4IYJRlJtz81qah5cqC1WS162s9CA4Fq5h0Bo8o4/XfXk9y3gpkSemPuZHOgFok1lS9Ey713NfbkqoCt2yRhZNYytBKTv2hCALNtPW2Ul7kUwJeKWEzqaS25KWz6TDwdhI+SaM5dm+gRxvBY/aowrtF3UCFgYQE+InEyjupVj07L4Ct5iCAkWtEYwMMw== X-Forefront-PRVS: 02788FF38E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR0501MB2047; 23:UC9ovcyIJXvjr6I5nI7JsV3hGKCpoYbB0Rvs1K4?= =?us-ascii?Q?vpgn6NdKg5Vug2Gk5V3sUJWUTbmpT7A2EMOpAuyx3eq/zBbosftFPpO/p12l?= =?us-ascii?Q?M5+zoHmkLG2ScAYXgOlqOpbHiPx32ahcheaOoQhbhIXjGkBevcx1xLnlcDVK?= =?us-ascii?Q?HBpfdPSi9t4HhCNjAfIcaBObzJHUjVbCm91SzOXbgn/bfVbKjKJN0fFEyp5P?= =?us-ascii?Q?PK9GZM76Qp/KqFhDuDjcre17zRqbcoTl9bZmLpx/tt5qC6H0fgv+ezOhHLrt?= =?us-ascii?Q?FfaPC4HUH0M0iaW+4cL6bi/enWfxZzV6xhGhihAlne8eaW4o4DtPy0VDPoVz?= =?us-ascii?Q?9Q/J0DeSHAb46PoabRDrt/mUsFcWwTpYVnxWgOF+tqc/ieLwiqfy7UCfr40H?= =?us-ascii?Q?ac9Viw72rJ/gFwE+0glIGBDoXjaPwUQ/T21BbZ8NrpgVBhsC6hJDqePMqPpQ?= =?us-ascii?Q?hd43sCXddwRidp+sW2/JJAlUYCkraFxSevYg2GJvg4RLg+Ju/6j8LYq0LB43?= =?us-ascii?Q?/XSZs6gFkSe3/rT9Mm7QWM3wtwsXSQpozYGWYLDbtzYpVck2HBv2vnLTWQuH?= =?us-ascii?Q?tB+oBbHI8e+AGQq/fQ3VZaluZ7FbclAqj+tyPyAsN10HPOsM1P4lEIr7UF9C?= =?us-ascii?Q?+HqBmlxCYqDCVfGoxcnqsqWWtp6a9I6Hc91EJus+zyd9XEpxYmpgE/oHkIUt?= =?us-ascii?Q?Hk0K2mi0mFcS4PVHlLiwcPRMwi5H4u1HcDWtilTrvllzguRHPRMlY5/d+xxH?= =?us-ascii?Q?rZf5pROC6y03FnbEZgpYOmTxiT2vq+R5vMlP3rhLqaA5ZHnn+KF99cnKLOVb?= =?us-ascii?Q?Jm4uTirGjTIsjA5o8kA+EZkI/hIB4/pyjRe1rLohwAWeMINn2eAGX3/TMgK3?= =?us-ascii?Q?xgd9X21mOOBOb6au8IiVw26743r/D/4ZkmiwKQ21jGhiCyLvVLGg7jFtGYn0?= =?us-ascii?Q?KwqlF+nAPhmk0tbiZqupuq1XYn9ztNONS1T/tNkq5xlrUCZ2H6Q0ZDasstGo?= =?us-ascii?Q?1JNwVpxJZdNCsDs3k6e8Ozu7pNAyimg2OMnAVYwLiwgqv0Vv/XYh1IpxUGE9?= =?us-ascii?Q?8jozkPEE6Gm0dr/hQpbQ+ESIpena3h1T3WlQ9mwirLhcm/rjw3r7rpbV56/K?= =?us-ascii?Q?VS7mDR1AvYMvQD5TYPFJuWOE8wJHVagmqvIBY+Yx/hioqdjlaIChC83Kbido?= =?us-ascii?Q?pEkxiS+LUzhr/kTYTjZBgLg61wtLKKyVt80Y4ZDx991wOfRJZh9ccRTi0oUB?= =?us-ascii?Q?YsQbZ03VDS5z5WS1iRZNsXrvoCfNzSaR6cuQpadsMLkNvdsl9gLZhE0qfgFG?= =?us-ascii?Q?2wpNuWRP/Vhy37WLa6EcRIl2RCkKEJlha39x2BJi6wrgJiGehLLOVVx3RxKT?= =?us-ascii?Q?7I0oPpknBpEsq/AQfX+K4NGJXooRoMjDbvC2hWr47V7P/aVoFxP05ClnZ+7i?= =?us-ascii?Q?YJ0k7Vp6egjF+R0tmLCR/3FlkZ8EWjVB9spm7ag/tK1DpaqkorKH6y2mnVJE?= =?us-ascii?Q?E4sWtcK25ZmD2VQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2047; 6:lzOkE2WXF8DKMImREkfDD/q+NlPPDwPRW6CG0Nyk3O2KDbKcwVDnUHG3LHHdODGi7inzbw/HAffg7+ZtrPp/bzU8cFGzrXZO5h9hEOk0htx3h1FCBBwtGqwi+EFNPqFt+nkXGefz/GFMGAkr9/w2fgJJKZhAuBhZcqTW2/OtxwHM8t3NPEP6bhdL5wEkuFJpxe3G8Iag4pLJRGxzpuePWjjdsC/W2iAUOta7w4/BAIm1QkzHafp1xGKpn0D1mIVw0ulNF7mA05VImnfcxwCdEppcjRJohoJio/+hX+yr6zQ/17kbyjd7tSOVn3O3ftJSrwcszoDXQaR6BZcXKCk2i90IUbon3ISPkI3XiFW7YFkPZ0o6huSNujfFt98Z/wzMW8ruz0dnCfMEEHjixvIHWvrxemPVqwReDcqUvZ8awqVrFhDxjGx3XX0AhkanlIsICQMA+M10Gm4tLVop1dBkWw==; 5:d15GdEgKnIYNwfRovDpDwJU4Ybc6gpUWdbZUPiVdYz4uM2Nxhg6kttSUAvYlptfFvEegMsgQj+NlHktyl01jl5h4moy9JefDoprsH0wt+ko0DuqXIHDYKgK1xhjTCuibT9+oVAQqs3Z3Coog/NdgqA==; 24:jFsOI2BKBwQZjoBexuQzVS7A+8szfokucioydoK4cmDM2Z4SajPKfgO4HpiHjpe8MRaxCCPf0Q6P7QGzIR2Ui9P21kIA0sioGnxwYdDa1xg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2047; 7:VPdwnbhDwdQ69yHrTEv3nsp17lR3YQvollZmdobN5fAOoJFargCGFLCEYyKcY1Pml66RwoZjDp2dWOEZWoVuUkp/VvK9Loqn8UXHEiRJRaxFQw5i0amjLIkpfrni4A+fn8/MVSTVIMqtAXwW0Htk2RkE8I/3cOXyJmQRk6BUti8t46ynLenwJuWbl85dqsaa6dDTTUhk+qsFmW9oREpT++g+p5jGegvRTs+Aqz9nkGheG6F4WLH8RoupmfTAGNDjWXeZN75QzPO0wPsEhldPDvTLFJ2DQL2UJoLrxlKGiAwbFDW1KdDCbDZJzP38gAuga+ItTiZu9NCnzfSLB5JNOw==; 20:gFPByWaBZNDnkURmzzCymQsz6U7YQRa5i1PgOV7GtEbsB4TIiTzbP5iR5pgVOwfHh+ZCHLxfI5blTcmNU0mL+Mgz0YFZ2d9zoBJIUvx3o6k2mtPCN6tRts9nhZPeT7eML7SAaA57hH3Hha0obesdIXK7ANEyOIDkWYCrk1/HF/0= X-OriginatorOrg: ksu.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2017 06:03:08.9412 (UTC) X-MS-Exchange-CrossTenant-Id: d9a2fa71-d67d-4cb6-b541-06ccaa8013fb X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=d9a2fa71-d67d-4cb6-b541-06ccaa8013fb; Ip=[129.130.18.151]; Helo=[ome-vm-smtp2.campus.ksu.edu] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0501MB2047 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Apr 2017 06:03:13 -0000 On Fri, Apr 14, 2017 at 1:55 PM, Kyle Evans wrote: > On Tue, Apr 11, 2017 at 3:20 PM, Kyle Evans wrote: > >> >> On the other hand, I think I could fairly easily implement most of these >> into libc/regex. Here's a summary of what this option entails adding to >> libc/regex, from what I've found: >> >> * Empty subexpressions(*) >> * Add missing quantifiers to BREs: \?, \+ >> * Add branching to BREs: \| >> * Add backreferences (\1 through \9) to EREs >> * Add \w, \W, \s, and \S corresponding to [[:alnum:]], [^[:alnum:]], >> [[:space:]], and [^[:space:]] respectively >> * Add word boundaries and anchors: >> ** \b: word boundary >> ** \B: not word boundary >> ** \<: Strt of word >> ** \>: End of word >> ** \`: Start of subject string >> ** \': End of subject string >> >> (*) I didn't actually find anything explicitly stating this as a GNU >> extension, but it's certainly not conformant to POSIX specifications to >> use, it gets used a tiny bit in some ports, and we implement a workaround >> in bsdgrep(1) for the simplest case of empty expressions ("") to match >> everything and produce zero length matches. >> >> The main benefit of this is not having to maintain a completely separate >> regex parser and the potential for inconsistencies that come along with it. >> The downside is that that would seem to promote expressions that are not >> strictly POSIX conformant. Is this a problem? Is this a problem worth >> worrying about? >> >> > FYI- A patch showing what the implementation for all of the above into > libc/regex looks like [1]. Some cleanup is still in order and the test set > is not exhaustive, but this should implement all of the GNU extensions and > it's at least functional. > > It will break some things (like one of the tests, for instance) that > relied on being able to escape an ordinary character (e.g. \b) and get an > ordinary character. This is specified as producing undefined behavior [2], > though, so I don't feel terrible about breaking it. > > If this seems desirable, I can work on cleaning it up and splitting it > into more consumable bites for FreeBSD's libc. > > Thanks, > > Kyle Evans > > [1] http://files.kyle-evans.net/freebsd/libc-gnuext.diff > [2] http://pubs.opengroup.org/onlinepubs/009696899/basedefs/ > xbd_chap09.html#tag_09_03_03 > An amended version of this patch can be found here: https://files.kyle-evans.net/freebsd/libc-gnuext-2.diff This one introduces a REG_POSIX flag for regcomp(3) that removes the GNU extension for a more POSIX conformant implementation along with an amendment to regex.3 to document said flag. Instead of removing the tests that don't fail like they should under GNU extensions, I've restored them and added a 'P' flag to specify REG_POSIX and marked the failing tests as such to clearly denote that they require a more strict implementation. Thanks, Kyle Evans