CVSROOT: /webcvs/grep Module name: grep Changes by: Jim Meyering <meyering> 23/03/22 22:55:22
Index: html_node/Fundamental-Structure.html =================================================================== RCS file: /webcvs/grep/grep/manual/html_node/Fundamental-Structure.html,v retrieving revision 1.33 retrieving revision 1.34 diff -u -b -r1.33 -r1.34 --- html_node/Fundamental-Structure.html 3 Sep 2022 19:33:14 -0000 1.33 +++ html_node/Fundamental-Structure.html 23 Mar 2023 02:55:21 -0000 1.34 @@ -1,11 +1,11 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE html> <html> -<!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ --> +<!-- Created by GNU Texinfo 7.0dev, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!-- This manual is for grep, a pattern matching engine. -Copyright (C) 1999-2002, 2005, 2008-2022 Free Software Foundation, +Copyright © 1999-2002, 2005, 2008-2023 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document @@ -14,10 +14,10 @@ Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". --> -<title>Fundamental Structure (GNU Grep 3.8)</title> +<title>Fundamental Structure (GNU Grep 3.10)</title> -<meta name="description" content="Fundamental Structure (GNU Grep 3.8)"> -<meta name="keywords" content="Fundamental Structure (GNU Grep 3.8)"> +<meta name="description" content="Fundamental Structure (GNU Grep 3.10)"> +<meta name="keywords" content="Fundamental Structure (GNU Grep 3.10)"> <meta name="resource-type" content="document"> <meta name="distribution" content="global"> <meta name="Generator" content="makeinfo"> @@ -30,21 +30,8 @@ <link href="Character-Classes-and-Bracket-Expressions.html" rel="next" title="Character Classes and Bracket Expressions"> <style type="text/css"> <!-- -a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} -a.summary-letter {text-decoration: none} -blockquote.indentedblock {margin-right: 0em} -div.display {margin-left: 3.2em} -div.example {margin-left: 3.2em} -kbd {font-style: oblique} -pre.display {font-family: inherit} -pre.format {font-family: inherit} -pre.menu-comment {font-family: serif} -pre.menu-preformatted {font-family: serif} -span.nolinebreak {white-space: nowrap} -span.roman {font-family: initial; font-weight: normal} -span.sansserif {font-family: sans-serif; font-weight: normal} -span:hover a.copiable-anchor {visibility: visible} -ul.no-bullet {list-style: none} +a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em} +span:hover a.copiable-link {visibility: visible} --> </style> <link rel="stylesheet" type="text/css" href="https://www.gnu.org/software/gnulib/manual.css"> @@ -53,75 +40,82 @@ </head> <body lang="en"> -<div class="section" id="Fundamental-Structure"> -<div class="header"> +<div class="section-level-extent" id="Fundamental-Structure"> +<div class="nav-panel"> <p> Next: <a href="Character-Classes-and-Bracket-Expressions.html" accesskey="n" rel="next">Character Classes and Bracket Expressions</a>, Up: <a href="Regular-Expressions.html" accesskey="u" rel="up">Regular Expressions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p> </div> <hr> -<span id="Fundamental-Structure-1"></span><h3 class="section">3.1 Fundamental Structure</h3> +<h3 class="section" id="Fundamental-Structure-1"><span>3.1 Fundamental Structure<a class="copiable-link" href="#Fundamental-Structure-1"> ¶</a></span></h3> -<span id="index-ordinary-characters"></span> -<span id="index-special-characters"></span> -<p>In regular expressions, the characters ‘<samp>.?*+{|()[\^$</samp>’ are -<em>special characters</em> and have uses described below. All other -characters are <em>ordinary characters</em>, and each ordinary character +<a class="index-entry-id" id="index-ordinary-characters"></a> +<a class="index-entry-id" id="index-special-characters"></a> +<p>In regular expressions, the characters ‘<samp class="samp">.?*+{|()[\^$</samp>’ are +<em class="dfn">special characters</em> and have uses described below. All other +characters are <em class="dfn">ordinary characters</em>, and each ordinary character is a regular expression that matches itself. </p> -<span id="index-_002e"></span> -<span id="index-dot"></span> -<span id="index-period"></span> -<p>The period ‘<samp>.</samp>’ matches any single character. -It is unspecified whether ‘<samp>.</samp>’ matches an encoding error. +<a class="index-entry-id" id="index-_002e"></a> +<a class="index-entry-id" id="index-dot"></a> +<a class="index-entry-id" id="index-period"></a> +<p>The period ‘<samp class="samp">.</samp>’ matches any single character. +It is unspecified whether ‘<samp class="samp">.</samp>’ matches an encoding error. </p> -<span id="index-interval-expressions"></span> +<a class="index-entry-id" id="index-interval-expressions"></a> <p>A regular expression may be followed by one of several -repetition operators; the operators beginning with ‘<samp>{</samp>’ -are called <em>interval expressions</em>. +repetition operators; the operators beginning with ‘<samp class="samp">{</samp>’ +are called <em class="dfn">interval expressions</em>. </p> -<dl compact="compact"> -<dt id='index-_003f'><span>‘<samp>?</samp>’<a href='#index-_003f' class='copiable-anchor'> ¶</a></span></dt> -<dd><span id="index-question-mark"></span> -<span id="index-match-expression-at-most-once"></span> +<dl class="table"> +<dt>‘<samp class="samp">?</samp>’</dt> +<dd><a class="index-entry-id" id="index-_003f"></a> +<a class="index-entry-id" id="index-question-mark"></a> +<a class="index-entry-id" id="index-match-expression-at-most-once"></a> <p>The preceding item is optional and is matched at most once. </p> </dd> -<dt id='index-_002a'><span>‘<samp>*</samp>’<a href='#index-_002a' class='copiable-anchor'> ¶</a></span></dt> -<dd><span id="index-asterisk"></span> -<span id="index-match-expression-zero-or-more-times"></span> +<dt>‘<samp class="samp">*</samp>’</dt> +<dd><a class="index-entry-id" id="index-_002a"></a> +<a class="index-entry-id" id="index-asterisk"></a> +<a class="index-entry-id" id="index-match-expression-zero-or-more-times"></a> <p>The preceding item is matched zero or more times. </p> </dd> -<dt id='index-_002b'><span>‘<samp>+</samp>’<a href='#index-_002b' class='copiable-anchor'> ¶</a></span></dt> -<dd><span id="index-plus-sign"></span> -<span id="index-match-expression-one-or-more-times"></span> +<dt>‘<samp class="samp">+</samp>’</dt> +<dd><a class="index-entry-id" id="index-_002b"></a> +<a class="index-entry-id" id="index-plus-sign"></a> +<a class="index-entry-id" id="index-match-expression-one-or-more-times"></a> <p>The preceding item is matched one or more times. </p> </dd> -<dt id='index-_007bn_007d'><span>‘<samp>{<var>n</var>}</samp>’<a href='#index-_007bn_007d' class='copiable-anchor'> ¶</a></span></dt> -<dd><span id="index-braces_002c-one-argument"></span> -<span id="index-match-expression-n-times"></span> -<p>The preceding item is matched exactly <var>n</var> times. -</p> -</dd> -<dt id='index-_007bn_002c_007d'><span>‘<samp>{<var>n</var>,}</samp>’<a href='#index-_007bn_002c_007d' class='copiable-anchor'> ¶</a></span></dt> -<dd><span id="index-braces_002c-second-argument-omitted"></span> -<span id="index-match-expression-n-or-more-times"></span> -<p>The preceding item is matched <var>n</var> or more times. -</p> -</dd> -<dt id='index-_007b_002cm_007d'><span>‘<samp>{,<var>m</var>}</samp>’<a href='#index-_007b_002cm_007d' class='copiable-anchor'> ¶</a></span></dt> -<dd><span id="index-braces_002c-first-argument-omitted"></span> -<span id="index-match-expression-at-most-m-times"></span> -<p>The preceding item is matched at most <var>m</var> times. +<dt>‘<samp class="samp">{<var class="var">n</var>}</samp>’</dt> +<dd><a class="index-entry-id" id="index-_007bn_007d"></a> +<a class="index-entry-id" id="index-braces_002c-one-argument"></a> +<a class="index-entry-id" id="index-match-expression-n-times"></a> +<p>The preceding item is matched exactly <var class="var">n</var> times. +</p> +</dd> +<dt>‘<samp class="samp">{<var class="var">n</var>,}</samp>’</dt> +<dd><a class="index-entry-id" id="index-_007bn_002c_007d"></a> +<a class="index-entry-id" id="index-braces_002c-second-argument-omitted"></a> +<a class="index-entry-id" id="index-match-expression-n-or-more-times"></a> +<p>The preceding item is matched <var class="var">n</var> or more times. +</p> +</dd> +<dt>‘<samp class="samp">{,<var class="var">m</var>}</samp>’</dt> +<dd><a class="index-entry-id" id="index-_007b_002cm_007d"></a> +<a class="index-entry-id" id="index-braces_002c-first-argument-omitted"></a> +<a class="index-entry-id" id="index-match-expression-at-most-m-times"></a> +<p>The preceding item is matched at most <var class="var">m</var> times. This is a GNU extension. </p> </dd> -<dt id='index-_007bn_002cm_007d'><span>‘<samp>{<var>n</var>,<var>m</var>}</samp>’<a href='#index-_007bn_002cm_007d' class='copiable-anchor'> ¶</a></span></dt> -<dd><span id="index-braces_002c-two-arguments"></span> -<span id="index-match-expression-from-n-to-m-times"></span> -<p>The preceding item is matched at least <var>n</var> times, but not more than -<var>m</var> times. +<dt>‘<samp class="samp">{<var class="var">n</var>,<var class="var">m</var>}</samp>’</dt> +<dd><a class="index-entry-id" id="index-_007bn_002cm_007d"></a> +<a class="index-entry-id" id="index-braces_002c-two-arguments"></a> +<a class="index-entry-id" id="index-match-expression-from-n-to-m-times"></a> +<p>The preceding item is matched at least <var class="var">n</var> times, but not more than +<var class="var">m</var> times. </p> </dd> </dl> @@ -132,23 +126,23 @@ matches any string formed by concatenating two substrings that respectively match the concatenated expressions. </p> -<span id="index-alternatives-in-regular-expressions"></span> -<p>Two regular expressions may be joined by the infix operator ‘<samp>|</samp>’. +<a class="index-entry-id" id="index-alternatives-in-regular-expressions"></a> +<p>Two regular expressions may be joined by the infix operator ‘<samp class="samp">|</samp>’. The resulting regular expression matches any string matching either of -the two expressions, which are called <em>alternatives</em>. +the two expressions, which are called <em class="dfn">alternatives</em>. </p> <p>Repetition takes precedence over concatenation, which in turn takes precedence over alternation. A whole expression may be enclosed in parentheses to override these precedence rules and form a subexpression. -An unmatched ‘<samp>)</samp>’ matches just itself. +An unmatched ‘<samp class="samp">)</samp>’ matches just itself. </p> <p>Not every character string is a valid regular expression. -See <a href="Problematic-Expressions.html">Problematic Regular Expressions</a>. +See <a class="xref" href="Problematic-Expressions.html">Problematic Regular Expressions</a>. </p> </div> <hr> -<div class="header"> +<div class="nav-panel"> <p> Next: <a href="Character-Classes-and-Bracket-Expressions.html">Character Classes and Bracket Expressions</a>, Up: <a href="Regular-Expressions.html">Regular Expressions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p> </div>
