DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ e

⟦6de0d971e⟧

    Length: 52219 (0xcbfb)
    Names: »emacs-4«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦this⟧ »EUUGD11/gnu-31mar87/emacs/info/emacs-4« 

Hex Dump

0x0000…0020 49 6e 66 6f 20 66 69 6c 65 20 65 6d 61 63 73 2c 20 70 72 6f 64 75 63 65 64 20 62 79 20 74 65 78   ┆Info file emacs, produced by tex┆
0x0020…0040 69 6e 66 6f 2d 66 6f 72 6d 61 74 2d 62 75 66 66 65 72 20 20 20 2d 2a 2d 54 65 78 74 2d 2a 2d 0a   ┆info-format-buffer   -*-Text-*- ┆
0x0040…0060 66 72 6f 6d 20 66 69 6c 65 20 65 6d 61 63 73 2e 74 65 78 0a 0a 54 68 69 73 20 66 69 6c 65 20 64   ┆from file emacs.tex  This file d┆
0x0060…0080 6f 63 75 6d 65 6e 74 73 20 74 68 65 20 47 4e 55 20 45 6d 61 63 73 20 65 64 69 74 6f 72 2e 0a 0a   ┆ocuments the GNU Emacs editor.  ┆
0x0080…00a0 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 35 2c 20 31 39 38 36 20 52 69 63 68 61 72 64   ┆Copyright (C) 1985, 1986 Richard┆
0x00a0…00c0 20 4d 2e 20 53 74 61 6c 6c 6d 61 6e 2e 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 72 61   ┆ M. Stallman.  Permission is gra┆
0x00c0…00e0 6e 74 65 64 20 74 6f 20 6d 61 6b 65 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62   ┆nted to make and distribute verb┆
0x00e0…0100 61 74 69 6d 20 63 6f 70 69 65 73 20 6f 66 0a 74 68 69 73 20 6d 61 6e 75 61 6c 20 70 72 6f 76 69   ┆atim copies of this manual provi┆
0x0100…0120 64 65 64 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69   ┆ded the copyright notice and thi┆
0x0120…0140 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 0a 61 72 65 20 70 72 65 73 65 72 76 65   ┆s permission notice are preserve┆
0x0140…0160 64 20 6f 6e 20 61 6c 6c 20 63 6f 70 69 65 73 2e 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20   ┆d on all copies.  Permission is ┆
0x0160…0180 67 72 61 6e 74 65 64 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 6d   ┆granted to copy and distribute m┆
0x0180…01a0 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 69 73 0a 6d 61 6e 75 61 6c 20   ┆odified versions of this manual ┆
0x01a0…01c0 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 76 65 72 62 61 74 69   ┆under the conditions for verbati┆
0x01c0…01e0 6d 20 63 6f 70 79 69 6e 67 2c 20 70 72 6f 76 69 64 65 64 20 61 6c 73 6f 20 74 68 61 74 20 74 68   ┆m copying, provided also that th┆
0x01e0…0200 65 0a 73 65 63 74 69 6f 6e 73 20 65 6e 74 69 74 6c 65 64 20 22 54 68 65 20 47 4e 55 20 4d 61 6e   ┆e sections entitled "The GNU Man┆
0x0200…0220 69 66 65 73 74 6f 22 2c 20 22 44 69 73 74 72 69 62 75 74 69 6f 6e 22 20 61 6e 64 20 22 47 4e 55   ┆ifesto", "Distribution" and "GNU┆
0x0220…0240 20 45 6d 61 63 73 0a 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 22 20 61   ┆ Emacs General Public License" a┆
0x0240…0260 72 65 20 69 6e 63 6c 75 64 65 64 20 65 78 61 63 74 6c 79 20 61 73 20 69 6e 20 74 68 65 20 6f 72   ┆re included exactly as in the or┆
0x0260…0280 69 67 69 6e 61 6c 2c 20 61 6e 64 0a 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 74 68 65 20 65 6e   ┆iginal, and provided that the en┆
0x0280…02a0 74 69 72 65 20 72 65 73 75 6c 74 69 6e 67 20 64 65 72 69 76 65 64 20 77 6f 72 6b 20 69 73 20 64   ┆tire resulting derived work is d┆
0x02a0…02c0 69 73 74 72 69 62 75 74 65 64 20 75 6e 64 65 72 20 74 68 65 0a 74 65 72 6d 73 20 6f 66 20 61 20   ┆istributed under the terms of a ┆
0x02c0…02e0 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 74   ┆permission notice identical to t┆
0x02e0…0300 68 69 73 20 6f 6e 65 2e 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 72 61 6e 74 65 64 20   ┆his one.  Permission is granted ┆
0x0300…0320 74 6f 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 74 72 61 6e 73 6c 61 74 69   ┆to copy and distribute translati┆
0x0320…0340 6f 6e 73 20 6f 66 20 74 68 69 73 20 6d 61 6e 75 61 6c 0a 69 6e 74 6f 20 61 6e 6f 74 68 65 72 20   ┆ons of this manual into another ┆
0x0340…0360 6c 61 6e 67 75 61 67 65 2c 20 75 6e 64 65 72 20 74 68 65 20 61 62 6f 76 65 20 63 6f 6e 64 69 74   ┆language, under the above condit┆
0x0360…0380 69 6f 6e 73 20 66 6f 72 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 2c 0a 65 78 63 65   ┆ions for modified versions, exce┆
0x0380…03a0 70 74 20 74 68 61 74 20 74 68 65 20 73 65 63 74 69 6f 6e 73 20 65 6e 74 69 74 6c 65 64 20 22 54   ┆pt that the sections entitled "T┆
0x03a0…03c0 68 65 20 47 4e 55 20 4d 61 6e 69 66 65 73 74 6f 22 2c 20 22 44 69 73 74 72 69 62 75 74 69 6f 6e   ┆he GNU Manifesto", "Distribution┆
0x03c0…03e0 22 0a 61 6e 64 20 22 47 4e 55 20 45 6d 61 63 73 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20   ┆" and "GNU Emacs General Public ┆
0x03e0…0400 4c 69 63 65 6e 73 65 22 20 6d 61 79 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 20 74 72   ┆License" may be included in a tr┆
0x0400…0420 61 6e 73 6c 61 74 69 6f 6e 0a 61 70 70 72 6f 76 65 64 20 62 79 20 74 68 65 20 61 75 74 68 6f 72   ┆anslation approved by the author┆
0x0420…0440 20 69 6e 73 74 65 61 64 20 6f 66 20 69 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 45 6e 67 6c   ┆ instead of in the original Engl┆
0x0440…0460 69 73 68 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 65 6d 61 63 73 20 20 4e 6f 64 65 3a 20 52 65 67 65 78   ┆ish.    File: emacs  Node: Regex┆
0x0460…0480 70 73 2c 20 50 72 65 76 3a 20 52 65 67 65 78 70 20 53 65 61 72 63 68 2c 20 55 70 3a 20 53 65 61   ┆ps, Prev: Regexp Search, Up: Sea┆
0x0480…04a0 72 63 68 2c 20 4e 65 78 74 3a 20 53 65 61 72 63 68 20 43 61 73 65 0a 0a 53 79 6e 74 61 78 20 6f   ┆rch, Next: Search Case  Syntax o┆
0x04a0…04c0 66 20 52 65 67 75 6c 61 72 20 45 78 70 72 65 73 73 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d   ┆f Regular Expressions ==========┆
0x04c0…04e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 52 65 67 75 6c 61 72 20 65 78 70   ┆===================  Regular exp┆
0x04e0…0500 72 65 73 73 69 6f 6e 73 20 68 61 76 65 20 61 20 73 79 6e 74 61 78 20 69 6e 20 77 68 69 63 68 20   ┆ressions have a syntax in which ┆
0x0500…0520 61 20 66 65 77 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 73 70 65 63 69 61 6c 0a 63 6f 6e   ┆a few characters are special con┆
0x0520…0540 73 74 72 75 63 74 73 20 61 6e 64 20 74 68 65 20 72 65 73 74 20 61 72 65 20 22 6f 72 64 69 6e 61   ┆structs and the rest are "ordina┆
0x0540…0560 72 79 22 2e 20 20 41 6e 20 6f 72 64 69 6e 61 72 79 20 63 68 61 72 61 63 74 65 72 20 69 73 20 61   ┆ry".  An ordinary character is a┆
0x0560…0580 20 73 69 6d 70 6c 65 0a 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 77 68 69 63 68   ┆ simple regular expression which┆
0x0580…05a0 20 6d 61 74 63 68 65 73 20 74 68 61 74 20 63 68 61 72 61 63 74 65 72 20 61 6e 64 20 6e 6f 74 68   ┆ matches that character and noth┆
0x05a0…05c0 69 6e 67 20 65 6c 73 65 2e 20 20 54 68 65 0a 73 70 65 63 69 61 6c 20 63 68 61 72 61 63 74 65 72   ┆ing else.  The special character┆
0x05c0…05e0 73 20 61 72 65 20 60 24 27 2c 20 60 5e 27 2c 20 60 2e 27 2c 20 60 2a 27 2c 20 60 2b 27 2c 20 60   ┆s are `$', `^', `.', `*', `+', `┆
0x05e0…0600 3f 27 2c 20 60 5b 27 2c 20 60 5d 27 20 61 6e 64 20 60 5c 27 3b 20 6e 6f 0a 6e 65 77 20 73 70 65   ┆?', `[', `]' and `\'; no new spe┆
0x0600…0620 63 69 61 6c 20 63 68 61 72 61 63 74 65 72 73 20 77 69 6c 6c 20 62 65 20 64 65 66 69 6e 65 64 2e   ┆cial characters will be defined.┆
0x0620…0640 20 20 41 6e 79 20 6f 74 68 65 72 20 63 68 61 72 61 63 74 65 72 20 61 70 70 65 61 72 69 6e 67 20   ┆  Any other character appearing ┆
0x0640…0660 69 6e 20 61 0a 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6f 72 64 69 6e   ┆in a regular expression is ordin┆
0x0660…0680 61 72 79 2c 20 75 6e 6c 65 73 73 20 61 20 60 5c 27 20 70 72 65 63 65 64 65 73 20 69 74 2e 0a 0a   ┆ary, unless a `\' precedes it.  ┆
0x0680…06a0 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 60 66 27 20 69 73 20 6e 6f 74 20 61 20 73 70 65 63 69 61   ┆For example, `f' is not a specia┆
0x06a0…06c0 6c 20 63 68 61 72 61 63 74 65 72 2c 20 73 6f 20 69 74 20 69 73 20 6f 72 64 69 6e 61 72 79 2c 20   ┆l character, so it is ordinary, ┆
0x06c0…06e0 61 6e 64 0a 74 68 65 72 65 66 6f 72 65 20 60 66 27 20 69 73 20 61 20 72 65 67 75 6c 61 72 20 65   ┆and therefore `f' is a regular e┆
0x06e0…0700 78 70 72 65 73 73 69 6f 6e 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 65 20 73 74 72 69 6e   ┆xpression that matches the strin┆
0x0700…0720 67 20 60 66 27 20 61 6e 64 20 6e 6f 0a 6f 74 68 65 72 20 73 74 72 69 6e 67 2e 20 20 28 49 74 20   ┆g `f' and no other string.  (It ┆
0x0720…0740 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 73 74 72 69 6e 67 20 60 66 66 27 2e 29   ┆does not match the string `ff'.)┆
0x0740…0760 20 20 4c 69 6b 65 77 69 73 65 2c 20 60 6f 27 20 69 73 20 61 0a 72 65 67 75 6c 61 72 20 65 78 70   ┆  Likewise, `o' is a regular exp┆
0x0760…0780 72 65 73 73 69 6f 6e 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 6f 6e 6c 79 20 60 6f 27 2e 0a 0a   ┆ression that matches only `o'.  ┆
0x0780…07a0 41 6e 79 20 74 77 6f 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 73 20 41 20 61 6e   ┆Any two regular expressions A an┆
0x07a0…07c0 64 20 42 20 63 61 6e 20 62 65 20 63 6f 6e 63 61 74 65 6e 61 74 65 64 2e 20 20 54 68 65 20 72 65   ┆d B can be concatenated.  The re┆
0x07c0…07e0 73 75 6c 74 20 69 73 20 61 0a 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 77 68 69   ┆sult is a regular expression whi┆
0x07e0…0800 63 68 20 6d 61 74 63 68 65 73 20 61 20 73 74 72 69 6e 67 20 69 66 20 41 20 6d 61 74 63 68 65 73   ┆ch matches a string if A matches┆
0x0800…0820 20 73 6f 6d 65 20 61 6d 6f 75 6e 74 20 6f 66 20 74 68 65 0a 62 65 67 69 6e 6e 69 6e 67 20 6f 66   ┆ some amount of the beginning of┆
0x0820…0840 20 74 68 61 74 20 73 74 72 69 6e 67 20 61 6e 64 20 42 20 6d 61 74 63 68 65 73 20 74 68 65 20 72   ┆ that string and B matches the r┆
0x0840…0860 65 73 74 20 6f 66 20 74 68 65 20 73 74 72 69 6e 67 2e 0a 0a 41 73 20 61 20 73 69 6d 70 6c 65 20   ┆est of the string.  As a simple ┆
0x0860…0880 65 78 61 6d 70 6c 65 2c 20 77 65 20 63 61 6e 20 63 6f 6e 63 61 74 65 6e 61 74 65 20 74 68 65 20   ┆example, we can concatenate the ┆
0x0880…08a0 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 73 20 60 66 27 0a 61 6e 64 20 60 6f 27 20   ┆regular expressions `f' and `o' ┆
0x08a0…08c0 74 6f 20 67 65 74 20 74 68 65 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 60 66   ┆to get the regular expression `f┆
0x08c0…08e0 6f 27 2c 20 77 68 69 63 68 20 6d 61 74 63 68 65 73 20 6f 6e 6c 79 0a 74 68 65 20 73 74 72 69 6e   ┆o', which matches only the strin┆
0x08e0…0900 67 20 60 66 6f 27 2e 20 20 53 74 69 6c 6c 20 74 72 69 76 69 61 6c 2e 20 20 54 6f 20 64 6f 20 73   ┆g `fo'.  Still trivial.  To do s┆
0x0900…0920 6f 6d 65 74 68 69 6e 67 20 6e 6f 6e 74 72 69 76 69 61 6c 2c 20 79 6f 75 0a 6e 65 65 64 20 74 6f   ┆omething nontrivial, you need to┆
0x0920…0940 20 75 73 65 20 6f 6e 65 20 6f 66 20 74 68 65 20 73 70 65 63 69 61 6c 20 63 68 61 72 61 63 74 65   ┆ use one of the special characte┆
0x0940…0960 72 73 2e 20 20 48 65 72 65 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 6d 2e 0a 0a 60 2e   ┆rs.  Here is a list of them.  `.┆
0x0960…0980 20 28 50 65 72 69 6f 64 29 27 20 20 20 20 20 0a 20 20 20 20 20 69 73 20 61 20 73 70 65 63 69 61   ┆ (Period)'           is a specia┆
0x0980…09a0 6c 20 63 68 61 72 61 63 74 65 72 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 61 6e 79 20 73 69 6e   ┆l character that matches any sin┆
0x09a0…09c0 67 6c 65 20 63 68 61 72 61 63 74 65 72 20 65 78 63 65 70 74 20 61 0a 20 20 20 20 20 6e 65 77 6c   ┆gle character except a      newl┆
0x09c0…09e0 69 6e 65 2e 20 20 55 73 69 6e 67 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 2c 20 77 65 20 63 61   ┆ine.  Using concatenation, we ca┆
0x09e0…0a00 6e 20 6d 61 6b 65 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 73 20 6c 69 6b 65 0a   ┆n make regular expressions like ┆
0x0a00…0a20 20 20 20 20 20 60 61 2e 62 27 20 77 68 69 63 68 20 6d 61 74 63 68 65 73 20 61 6e 79 20 74 68 72   ┆     `a.b' which matches any thr┆
0x0a20…0a40 65 65 2d 63 68 61 72 61 63 74 65 72 20 73 74 72 69 6e 67 20 77 68 69 63 68 20 62 65 67 69 6e 73   ┆ee-character string which begins┆
0x0a40…0a60 20 77 69 74 68 20 60 61 27 0a 20 20 20 20 20 61 6e 64 20 65 6e 64 73 20 77 69 74 68 20 60 62 27   ┆ with `a'      and ends with `b'┆
0x0a60…0a80 2e 0a 20 20 20 20 20 0a 60 2a 27 20 20 20 20 20 0a 20 20 20 20 20 69 73 20 6e 6f 74 20 61 20 63   ┆.       `*'           is not a c┆
0x0a80…0aa0 6f 6e 73 74 72 75 63 74 20 62 79 20 69 74 73 65 6c 66 3b 20 69 74 20 69 73 20 61 20 73 75 66 66   ┆onstruct by itself; it is a suff┆
0x0aa0…0ac0 69 78 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 20 74 68 65 0a 20 20 20 20 20 70 72 65 63 65 64 69   ┆ix, which means the      precedi┆
0x0ac0…0ae0 6e 67 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 74 6f 20 62 65 20 72   ┆ng regular expression is to be r┆
0x0ae0…0b00 65 70 65 61 74 65 64 20 61 73 20 6d 61 6e 79 20 74 69 6d 65 73 20 61 73 0a 20 20 20 20 20 70 6f   ┆epeated as many times as      po┆
0x0b00…0b20 73 73 69 62 6c 65 2e 20 20 49 6e 20 60 66 6f 2a 27 2c 20 74 68 65 20 60 2a 27 20 61 70 70 6c 69   ┆ssible.  In `fo*', the `*' appli┆
0x0b20…0b40 65 73 20 74 6f 20 74 68 65 20 60 6f 27 2c 20 73 6f 20 60 66 6f 2a 27 20 6d 61 74 63 68 65 73 20   ┆es to the `o', so `fo*' matches ┆
0x0b40…0b60 6f 6e 65 0a 20 20 20 20 20 60 66 27 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 6e 79 20 6e 75 6d   ┆one      `f' followed by any num┆
0x0b60…0b80 62 65 72 20 6f 66 20 60 6f 27 73 2e 20 20 54 68 65 20 63 61 73 65 20 6f 66 20 7a 65 72 6f 20 60   ┆ber of `o's.  The case of zero `┆
0x0b80…0ba0 6f 27 73 20 69 73 20 61 6c 6c 6f 77 65 64 3a 0a 20 20 20 20 20 60 66 6f 2a 27 20 64 6f 65 73 20   ┆o's is allowed:      `fo*' does ┆
0x0ba0…0bc0 6d 61 74 63 68 20 60 66 27 2e 0a 20 20 20 20 20 0a 20 20 20 20 20 60 2a 27 20 61 6c 77 61 79 73   ┆match `f'.            `*' always┆
0x0bc0…0be0 20 61 70 70 6c 69 65 73 20 74 6f 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 70 6f 73 73 69 62 6c   ┆ applies to the smallest possibl┆
0x0be0…0c00 65 20 70 72 65 63 65 64 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 20 54 68 75   ┆e preceding expression.      Thu┆
0x0c00…0c20 73 2c 20 60 66 6f 2a 27 20 68 61 73 20 61 20 72 65 70 65 61 74 69 6e 67 20 60 6f 27 2c 20 6e 6f   ┆s, `fo*' has a repeating `o', no┆
0x0c20…0c40 74 20 61 20 72 65 70 65 61 74 69 6e 67 20 60 66 6f 27 2e 0a 20 20 20 20 20 0a 20 20 20 20 20 54   ┆t a repeating `fo'.            T┆
0x0c40…0c60 68 65 20 6d 61 74 63 68 65 72 20 70 72 6f 63 65 73 73 65 73 20 61 20 60 2a 27 20 63 6f 6e 73 74   ┆he matcher processes a `*' const┆
0x0c60…0c80 72 75 63 74 20 62 79 20 6d 61 74 63 68 69 6e 67 2c 20 69 6d 6d 65 64 69 61 74 65 6c 79 2c 20 61   ┆ruct by matching, immediately, a┆
0x0c80…0ca0 73 0a 20 20 20 20 20 6d 61 6e 79 20 72 65 70 65 74 69 74 69 6f 6e 73 20 61 73 20 63 61 6e 20 62   ┆s      many repetitions as can b┆
0x0ca0…0cc0 65 20 66 6f 75 6e 64 2e 20 20 54 68 65 6e 20 69 74 20 63 6f 6e 74 69 6e 75 65 73 20 77 69 74 68   ┆e found.  Then it continues with┆
0x0cc0…0ce0 20 74 68 65 20 72 65 73 74 20 6f 66 0a 20 20 20 20 20 74 68 65 20 70 61 74 74 65 72 6e 2e 20 20   ┆ the rest of      the pattern.  ┆
0x0ce0…0d00 49 66 20 74 68 61 74 20 66 61 69 6c 73 2c 20 62 61 63 6b 74 72 61 63 6b 69 6e 67 20 6f 63 63 75   ┆If that fails, backtracking occu┆
0x0d00…0d20 72 73 2c 20 64 69 73 63 61 72 64 69 6e 67 20 73 6f 6d 65 20 6f 66 0a 20 20 20 20 20 74 68 65 20   ┆rs, discarding some of      the ┆
0x0d20…0d40 6d 61 74 63 68 65 73 20 6f 66 20 74 68 65 20 60 2a 27 2d 6d 6f 64 69 66 69 65 64 20 63 6f 6e 73   ┆matches of the `*'-modified cons┆
0x0d40…0d60 74 72 75 63 74 20 69 6e 20 63 61 73 65 20 74 68 61 74 20 6d 61 6b 65 73 20 69 74 0a 20 20 20 20   ┆truct in case that makes it     ┆
0x0d60…0d80 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 72 65 73 74 20 6f 66 20 74   ┆ possible to match the rest of t┆
0x0d80…0da0 68 65 20 70 61 74 74 65 72 6e 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6d 61 74 63 68 69   ┆he pattern.  For example, matchi┆
0x0da0…0dc0 6e 67 0a 20 20 20 20 20 60 63 61 2a 61 72 27 20 61 67 61 69 6e 73 74 20 74 68 65 20 73 74 72 69   ┆ng      `ca*ar' against the stri┆
0x0dc0…0de0 6e 67 20 60 63 61 61 61 72 27 2c 20 74 68 65 20 60 61 2a 27 20 66 69 72 73 74 20 74 72 69 65 73   ┆ng `caaar', the `a*' first tries┆
0x0de0…0e00 20 74 6f 20 6d 61 74 63 68 20 61 6c 6c 0a 20 20 20 20 20 74 68 72 65 65 20 60 61 27 73 3b 20 62   ┆ to match all      three `a's; b┆
0x0e00…0e20 75 74 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 70 61 74 74 65 72 6e 20 69 73 20 60 61   ┆ut the rest of the pattern is `a┆
0x0e20…0e40 72 27 20 61 6e 64 20 74 68 65 72 65 20 69 73 20 6f 6e 6c 79 20 60 72 27 0a 20 20 20 20 20 6c 65   ┆r' and there is only `r'      le┆
0x0e40…0e60 66 74 20 74 6f 20 6d 61 74 63 68 2c 20 73 6f 20 74 68 69 73 20 74 72 79 20 66 61 69 6c 73 2e 20   ┆ft to match, so this try fails. ┆
0x0e60…0e80 20 54 68 65 20 6e 65 78 74 20 61 6c 74 65 72 6e 61 74 69 76 65 20 69 73 20 66 6f 72 20 60 61 2a   ┆ The next alternative is for `a*┆
0x0e80…0ea0 27 20 74 6f 0a 20 20 20 20 20 6d 61 74 63 68 20 6f 6e 6c 79 20 74 77 6f 20 60 61 27 73 2e 20 20   ┆' to      match only two `a's.  ┆
0x0ea0…0ec0 57 69 74 68 20 74 68 69 73 20 63 68 6f 69 63 65 2c 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68   ┆With this choice, the rest of th┆
0x0ec0…0ee0 65 20 72 65 67 65 78 70 20 6d 61 74 63 68 65 73 0a 20 20 20 20 20 73 75 63 63 65 73 73 66 75 6c   ┆e regexp matches      successful┆
0x0ee0…0f00 6c 79 2e 0a 20 20 20 20 20 0a 60 2b 27 20 20 20 20 20 0a 20 20 20 20 20 49 73 20 61 20 73 75 66   ┆ly.       `+'           Is a suf┆
0x0f00…0f20 66 69 78 20 63 68 61 72 61 63 74 65 72 20 73 69 6d 69 6c 61 72 20 74 6f 20 60 2a 27 20 65 78 63   ┆fix character similar to `*' exc┆
0x0f20…0f40 65 70 74 20 74 68 61 74 20 69 74 20 72 65 71 75 69 72 65 73 20 74 68 61 74 20 74 68 65 0a 20 20   ┆ept that it requires that the   ┆
0x0f40…0f60 20 20 20 70 72 65 63 65 64 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 20 62 65 20 6d 61 74 63 68   ┆   preceding expression be match┆
0x0f60…0f80 65 64 20 61 74 20 6c 65 61 73 74 20 6f 6e 63 65 2e 20 20 53 6f 2c 20 66 6f 72 20 65 78 61 6d 70   ┆ed at least once.  So, for examp┆
0x0f80…0fa0 6c 65 2c 0a 20 20 20 20 20 60 63 61 2b 72 27 20 77 69 6c 6c 20 6d 61 74 63 68 20 74 68 65 20 73   ┆le,      `ca+r' will match the s┆
0x0fa0…0fc0 74 72 69 6e 67 73 20 60 63 61 72 27 20 61 6e 64 20 60 63 61 61 61 61 72 27 20 62 75 74 20 6e 6f   ┆trings `car' and `caaaar' but no┆
0x0fc0…0fe0 74 20 74 68 65 20 73 74 72 69 6e 67 0a 20 20 20 20 20 60 63 72 27 2c 20 77 68 65 72 65 61 73 20   ┆t the string      `cr', whereas ┆
0x0fe0…1000 60 63 61 2a 72 27 20 77 6f 75 6c 64 20 6d 61 74 63 68 20 61 6c 6c 20 74 68 72 65 65 20 73 74 72   ┆`ca*r' would match all three str┆
0x1000…1020 69 6e 67 73 2e 0a 20 20 20 20 20 0a 60 3f 27 20 20 20 20 20 0a 20 20 20 20 20 49 73 20 61 20 73   ┆ings.       `?'           Is a s┆
0x1020…1040 75 66 66 69 78 20 63 68 61 72 61 63 74 65 72 20 73 69 6d 69 6c 61 72 20 74 6f 20 60 2a 27 20 65   ┆uffix character similar to `*' e┆
0x1040…1060 78 63 65 70 74 20 74 68 61 74 20 69 74 20 63 61 6e 20 6d 61 74 63 68 20 74 68 65 0a 20 20 20 20   ┆xcept that it can match the     ┆
0x1060…1080 20 70 72 65 63 65 64 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 20 65 69 74 68 65 72 20 6f 6e 63   ┆ preceding expression either onc┆
0x1080…10a0 65 20 6f 72 20 6e 6f 74 20 61 74 20 61 6c 6c 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 20   ┆e or not at all.  For example,  ┆
0x10a0…10c0 20 20 20 20 60 63 61 3f 72 27 20 77 69 6c 6c 20 6d 61 74 63 68 20 60 63 61 72 27 20 6f 72 20 60   ┆    `ca?r' will match `car' or `┆
0x10c0…10e0 63 72 27 3b 20 6e 6f 74 68 69 6e 67 20 65 6c 73 65 2e 0a 20 20 20 20 20 0a 60 5b 20 2e 2e 2e 20   ┆cr'; nothing else.       `[ ... ┆
0x10e0…1100 5d 27 20 20 20 20 20 0a 20 20 20 20 20 60 5b 27 20 62 65 67 69 6e 73 20 61 20 22 63 68 61 72 61   ┆]'           `[' begins a "chara┆
0x1100…1120 63 74 65 72 20 73 65 74 22 2c 20 77 68 69 63 68 20 69 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62   ┆cter set", which is terminated b┆
0x1120…1140 79 20 61 20 60 5d 27 2e 20 20 49 6e 20 74 68 65 0a 20 20 20 20 20 73 69 6d 70 6c 65 73 74 20 63   ┆y a `]'.  In the      simplest c┆
0x1140…1160 61 73 65 2c 20 74 68 65 20 63 68 61 72 61 63 74 65 72 73 20 62 65 74 77 65 65 6e 20 74 68 65 20   ┆ase, the characters between the ┆
0x1160…1180 74 77 6f 20 66 6f 72 6d 20 74 68 65 20 73 65 74 2e 20 20 54 68 75 73 2c 0a 20 20 20 20 20 60 5b   ┆two form the set.  Thus,      `[┆
0x1180…11a0 61 64 5d 27 20 6d 61 74 63 68 65 73 20 65 69 74 68 65 72 20 6f 6e 65 20 60 61 27 20 6f 72 20 6f   ┆ad]' matches either one `a' or o┆
0x11a0…11c0 6e 65 20 60 64 27 2c 20 61 6e 64 20 60 5b 61 64 5d 2a 27 20 6d 61 74 63 68 65 73 20 61 6e 79 0a   ┆ne `d', and `[ad]*' matches any ┆
0x11c0…11e0 20 20 20 20 20 73 74 72 69 6e 67 20 63 6f 6d 70 6f 73 65 64 20 6f 66 20 6a 75 73 74 20 60 61 27   ┆     string composed of just `a'┆
0x11e0…1200 73 20 61 6e 64 20 60 64 27 73 20 28 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 65 6d 70 74 79 20   ┆s and `d's (including the empty ┆
0x1200…1220 73 74 72 69 6e 67 29 2c 0a 20 20 20 20 20 66 72 6f 6d 20 77 68 69 63 68 20 69 74 20 66 6f 6c 6c   ┆string),      from which it foll┆
0x1220…1240 6f 77 73 20 74 68 61 74 20 60 63 5b 61 64 5d 2a 72 27 20 6d 61 74 63 68 65 73 20 60 63 72 27 2c   ┆ows that `c[ad]*r' matches `cr',┆
0x1240…1260 20 60 63 61 72 27 2c 20 60 63 64 72 27 2c 0a 20 20 20 20 20 60 63 61 64 64 61 61 72 27 2c 20 65   ┆ `car', `cdr',      `caddaar', e┆
0x1260…1280 74 63 2e 0a 20 20 20 20 20 0a 20 20 20 20 20 43 68 61 72 61 63 74 65 72 20 72 61 6e 67 65 73 20   ┆tc.            Character ranges ┆
0x1280…12a0 63 61 6e 20 61 6c 73 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 20 63 68 61 72 61 63   ┆can also be included in a charac┆
0x12a0…12c0 74 65 72 20 73 65 74 2c 20 62 79 20 77 72 69 74 69 6e 67 0a 20 20 20 20 20 74 77 6f 20 63 68 61   ┆ter set, by writing      two cha┆
0x12c0…12e0 72 61 63 74 65 72 73 20 77 69 74 68 20 61 20 60 2d 27 20 62 65 74 77 65 65 6e 20 74 68 65 6d 2e   ┆racters with a `-' between them.┆
0x12e0…1300 20 20 54 68 75 73 2c 20 60 5b 61 2d 7a 5d 27 20 6d 61 74 63 68 65 73 20 61 6e 79 0a 20 20 20 20   ┆  Thus, `[a-z]' matches any     ┆
0x1300…1320 20 6c 6f 77 65 72 2d 63 61 73 65 20 6c 65 74 74 65 72 2e 20 20 52 61 6e 67 65 73 20 6d 61 79 20   ┆ lower-case letter.  Ranges may ┆
0x1320…1340 62 65 20 69 6e 74 65 72 6d 69 78 65 64 20 66 72 65 65 6c 79 20 77 69 74 68 20 69 6e 64 69 76 69   ┆be intermixed freely with indivi┆
0x1340…1360 64 75 61 6c 0a 20 20 20 20 20 63 68 61 72 61 63 74 65 72 73 2c 20 61 73 20 69 6e 20 60 5b 61 2d   ┆dual      characters, as in `[a-┆
0x1360…1380 7a 24 25 2e 5d 27 2c 20 77 68 69 63 68 20 6d 61 74 63 68 65 73 20 61 6e 79 20 6c 6f 77 65 72 20   ┆z$%.]', which matches any lower ┆
0x1380…13a0 63 61 73 65 20 6c 65 74 74 65 72 20 6f 72 0a 20 20 20 20 20 60 24 27 2c 20 60 25 27 20 6f 72 20   ┆case letter or      `$', `%' or ┆
0x13a0…13c0 70 65 72 69 6f 64 2e 0a 20 20 20 20 20 0a 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65   ┆period.            Note that the┆
0x13c0…13e0 20 75 73 75 61 6c 20 73 70 65 63 69 61 6c 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 6e 6f   ┆ usual special characters are no┆
0x13e0…1400 74 20 73 70 65 63 69 61 6c 20 61 6e 79 20 6d 6f 72 65 20 69 6e 73 69 64 65 0a 20 20 20 20 20 61   ┆t special any more inside      a┆
0x1400…1420 20 63 68 61 72 61 63 74 65 72 20 73 65 74 2e 20 20 41 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 69   ┆ character set.  A completely di┆
0x1420…1440 66 66 65 72 65 6e 74 20 73 65 74 20 6f 66 20 73 70 65 63 69 61 6c 20 63 68 61 72 61 63 74 65 72   ┆fferent set of special character┆
0x1440…1460 73 0a 20 20 20 20 20 65 78 69 73 74 73 20 69 6e 73 69 64 65 20 63 68 61 72 61 63 74 65 72 20 73   ┆s      exists inside character s┆
0x1460…1480 65 74 73 3a 20 60 5d 27 2c 20 60 2d 27 20 61 6e 64 20 60 5e 27 2e 0a 20 20 20 20 20 0a 20 20 20   ┆ets: `]', `-' and `^'.          ┆
0x1480…14a0 20 20 54 6f 20 69 6e 63 6c 75 64 65 20 61 20 60 5d 27 20 69 6e 20 61 20 63 68 61 72 61 63 74 65   ┆  To include a `]' in a characte┆
0x14a0…14c0 72 20 73 65 74 2c 20 79 6f 75 20 6d 75 73 74 20 6d 61 6b 65 20 69 74 20 74 68 65 20 66 69 72 73   ┆r set, you must make it the firs┆
0x14c0…14e0 74 0a 20 20 20 20 20 63 68 61 72 61 63 74 65 72 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20   ┆t      character.  For example, ┆
0x14e0…1500 60 5b 5d 61 5d 27 20 6d 61 74 63 68 65 73 20 60 5d 27 20 6f 72 20 60 61 27 2e 20 20 54 6f 20 69   ┆`[]a]' matches `]' or `a'.  To i┆
0x1500…1520 6e 63 6c 75 64 65 20 61 20 60 2d 27 2c 0a 20 20 20 20 20 77 72 69 74 65 20 60 2d 2d 2d 27 2c 20   ┆nclude a `-',      write `---', ┆
0x1520…1540 77 68 69 63 68 20 69 73 20 61 20 72 61 6e 67 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e 6c 79   ┆which is a range containing only┆
0x1540…1560 20 60 2d 27 2e 20 20 54 6f 20 69 6e 63 6c 75 64 65 20 60 5e 27 2c 0a 20 20 20 20 20 6d 61 6b 65   ┆ `-'.  To include `^',      make┆
0x1560…1580 20 69 74 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 66 69 72 73 74 20 63 68 61 72 61 63 74   ┆ it other than the first charact┆
0x1580…15a0 65 72 20 69 6e 20 74 68 65 20 73 65 74 2e 0a 20 20 20 20 20 0a 60 5b 5e 20 2e 2e 2e 20 5d 27 20   ┆er in the set.       `[^ ... ]' ┆
0x15a0…15c0 20 20 20 20 0a 20 20 20 20 20 60 5b 5e 27 20 62 65 67 69 6e 73 20 61 20 22 63 6f 6d 70 6c 65 6d   ┆          `[^' begins a "complem┆
0x15c0…15e0 65 6e 74 20 63 68 61 72 61 63 74 65 72 20 73 65 74 22 2c 20 77 68 69 63 68 20 6d 61 74 63 68 65   ┆ent character set", which matche┆
0x15e0…1600 73 20 61 6e 79 20 63 68 61 72 61 63 74 65 72 0a 20 20 20 20 20 65 78 63 65 70 74 20 74 68 65 20   ┆s any character      except the ┆
0x1600…1620 6f 6e 65 73 20 73 70 65 63 69 66 69 65 64 2e 20 20 54 68 75 73 2c 20 60 5b 5e 61 2d 7a 30 2d 39   ┆ones specified.  Thus, `[^a-z0-9┆
0x1620…1640 41 2d 5a 5d 27 20 6d 61 74 63 68 65 73 20 61 6c 6c 0a 20 20 20 20 20 63 68 61 72 61 63 74 65 72   ┆A-Z]' matches all      character┆
0x1640…1660 73 20 65 78 63 65 70 74 20 6c 65 74 74 65 72 73 20 61 6e 64 20 64 69 67 69 74 73 2e 0a 20 20 20   ┆s except letters and digits.    ┆
0x1660…1680 20 20 0a 20 20 20 20 20 60 5e 27 20 69 73 20 6e 6f 74 20 73 70 65 63 69 61 6c 20 69 6e 20 61 20   ┆        `^' is not special in a ┆
0x1680…16a0 63 68 61 72 61 63 74 65 72 20 73 65 74 20 75 6e 6c 65 73 73 20 69 74 20 69 73 20 74 68 65 20 66   ┆character set unless it is the f┆
0x16a0…16c0 69 72 73 74 0a 20 20 20 20 20 63 68 61 72 61 63 74 65 72 2e 20 20 54 68 65 20 63 68 61 72 61 63   ┆irst      character.  The charac┆
0x16c0…16e0 74 65 72 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 60 5e 27 20 69 73 20 74 72 65 61 74 65 64   ┆ter following the `^' is treated┆
0x16e0…1700 20 61 73 20 69 66 20 69 74 0a 20 20 20 20 20 77 65 72 65 20 66 69 72 73 74 20 28 60 2d 27 20 61   ┆ as if it      were first (`-' a┆
0x1700…1720 6e 64 20 60 5d 27 20 61 72 65 20 6e 6f 74 20 73 70 65 63 69 61 6c 20 74 68 65 72 65 29 2e 0a 20   ┆nd `]' are not special there).  ┆
0x1720…1740 20 20 20 20 0a 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 61 20 63 6f 6d 70 6c 65 6d 65 6e 74   ┆          Note that a complement┆
0x1740…1760 20 63 68 61 72 61 63 74 65 72 20 73 65 74 20 63 61 6e 20 6d 61 74 63 68 20 61 20 6e 65 77 6c 69   ┆ character set can match a newli┆
0x1760…1780 6e 65 2c 20 75 6e 6c 65 73 73 0a 20 20 20 20 20 6e 65 77 6c 69 6e 65 20 69 73 20 6d 65 6e 74 69   ┆ne, unless      newline is menti┆
0x1780…17a0 6f 6e 65 64 20 61 73 20 6f 6e 65 20 6f 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 73 20 6e 6f   ┆oned as one of the characters no┆
0x17a0…17c0 74 20 74 6f 20 6d 61 74 63 68 2e 0a 20 20 20 20 20 0a 60 5e 27 20 20 20 20 20 0a 20 20 20 20 20   ┆t to match.       `^'           ┆
0x17c0…17e0 69 73 20 61 20 73 70 65 63 69 61 6c 20 63 68 61 72 61 63 74 65 72 20 74 68 61 74 20 6d 61 74 63   ┆is a special character that matc┆
0x17e0…1800 68 65 73 20 74 68 65 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2c 20 62 75 74 20 6f 6e 6c 79 20 69   ┆hes the empty string, but only i┆
0x1800…1820 66 20 61 74 0a 20 20 20 20 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 20 6c 69 6e   ┆f at      the beginning of a lin┆
0x1820…1840 65 20 69 6e 20 74 68 65 20 74 65 78 74 20 62 65 69 6e 67 20 6d 61 74 63 68 65 64 2e 20 20 4f 74   ┆e in the text being matched.  Ot┆
0x1840…1860 68 65 72 77 69 73 65 20 69 74 20 66 61 69 6c 73 0a 20 20 20 20 20 74 6f 20 6d 61 74 63 68 20 61   ┆herwise it fails      to match a┆
0x1860…1880 6e 79 74 68 69 6e 67 2e 20 20 54 68 75 73 2c 20 60 5e 66 6f 6f 27 20 6d 61 74 63 68 65 73 20 61   ┆nything.  Thus, `^foo' matches a┆
0x1880…18a0 20 60 66 6f 6f 27 20 77 68 69 63 68 20 6f 63 63 75 72 73 0a 20 20 20 20 20 61 74 20 74 68 65 20   ┆ `foo' which occurs      at the ┆
0x18a0…18c0 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 20 6c 69 6e 65 2e 0a 20 20 20 20 20 0a 60 24 27 20 20   ┆beginning of a line.       `$'  ┆
0x18c0…18e0 20 20 20 0a 20 20 20 20 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 60 5e 27 20 62 75 74 20 6d   ┆         is similar to `^' but m┆
0x18e0…1900 61 74 63 68 65 73 20 6f 6e 6c 79 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 6c 69 6e 65   ┆atches only at the end of a line┆
0x1900…1920 2e 20 20 54 68 75 73 2c 0a 20 20 20 20 20 60 78 78 2a 24 27 20 6d 61 74 63 68 65 73 20 61 20 73   ┆.  Thus,      `xx*$' matches a s┆
[…truncated at 200 lines…]