From c8a4857452c5760f5a0d1bb90545e842e9d1f01a Mon Sep 17 00:00:00 2001 From: angrywolf Date: Sat, 26 Feb 2005 13:23:19 +0000 Subject: [PATCH] Doc update (week 08), I've also done some grammar corrections --- doc/unreal32docs.hu.html | 258 +++++++++++++++++++++++---------------- 1 file changed, 156 insertions(+), 102 deletions(-) diff --git a/doc/unreal32docs.hu.html b/doc/unreal32docs.hu.html index ce8bb6fe4..69c9bfb08 100644 --- a/doc/unreal32docs.hu.html +++ b/doc/unreal32docs.hu.html @@ -67,11 +67,12 @@ Hungarian | -- 3.9. IPv6
-- 3.10. Zip linkek
-- 3.11. Dinamikus DNS-sel/IP-vel linkelések támogatása
- -- 3.12. Anti-flood featúrák
+ -- 3.12. Árasztásvédelmi featúrák
-- 3.13. Ban típusok
-- 3.14. A spamszűrő
-- 3.15. CIDR
- -- 3.16. További featúrák
+ -- 3.16. Karakterkészletek nicknevekhez
+ -- 3.17. További featúrák
4. Az unrealircd.conf fájlod beállítása
---4.1. A konfigurációs formátumról
@@ -232,7 +233,7 @@ Windows:

3.1 - Álcázás

Az álcázás (cloaking) egy módszer a felhasználók valós gazdaneveinek elrejtésére. Például, ha a valódi gazdaneved d5142341.cable.wanadoo.nl, (a join, part, whois stb. üzenetekben) rox-2DCA3201.cable.wanadoo.nl-ként lesz megjelenítve. - Ez a featúra hasznos annak a megelőzésére, hogy a felhasználók egymást floodolják, mivel nem látják a valódi gazdanevet ill. IP címet.

+ Ez a featúra hasznos annak a megelőzésére, hogy a felhasználók egymást árasszák (floodolják), mivel így nem látják a valódi gazdanevet ill. IP címet.

Ez a +x felhasználói móddal vezérelhető (például: /mode nickneved +x), az adminok erőltethetik a +x alapértelemzésbeli engedélyezését is, vagy beállíthatják, hogy a mód soha ne legyen eltávolítható.

Az álcázott gazdanevet egy álcázó modul állítja elő (egyet szükséges betöltened), jelenleg 2 ilyen hivatalos modul áll rendelkezésre:
@@ -240,7 +241,7 @@ Windows:
belsőleg használ md5-öt, és 3 kulcsot igényel (set::cloak-keys::), amelyek mindegyike kis- (a-z), nagybetű (A-Z) valamint szám (0-9) karakterekből áll [pl.: "AopAS6WQH2Os6hfosh4SFJHs"]. Az example.conf-ban találsz példát.
oldcloak: Ez az Unreal3.2 és korábbi verziók által használt, régi álcázó algoritmus, és csak azért van itt, - hogy segédkezzen a frissítési folyamatban. Mostmár nem tartjuk biztonságosnak (kapsz egy figyelmeztést, + hogy segédkezzen a frissítési folyamatban. Most már nem tartjuk biztonságosnak (kapsz egy figyelmeztést, ha használod), és rögtön érdemes átváltanod a "cloak"-ra, amint frissítetted a szervereidet.

Az álcázási kulcsoknak egy hálózat MINDEN SZERVERÉN azonosnak KELL lenniük. Továbbá a kulcsokat tartsd TITOKBAN, mert ha valaki ismeri a kulcsokat, visszafejtheti az eredeti gazdanevet (ami a +x felhasználói módot hasznavehetetlenné teszi).

@@ -265,7 +266,7 @@ Windows:

A jelenleg rendelkezésre álló snomaskok az alábbiak:
c - helyi kapcsolódások
F - távoli kapcsolódások (kivéve U:line-os szerverekről)
- f - flood értesítések
+ f - árasztásokról szóló értesítések
k - kill értesítések [*]
e - szem (eyes) értesítések
j - selejt (junk) értesítések
@@ -352,20 +353,20 @@ K (mint a valami.dyndns.org). Ha két dinamikus DNS-sel rendelkező gépet linkelsz, állítsd be a link::options::nodnscache és a link::options::nohostcheck opciókat.

-

3.12 - Anti-Flood featúrák

+

3.12 - Árasztásvédelmi featúrák

Elfojtás
Az elfojtás (throttling) egy módszer annak korlátozására, hogy egy felhasználó milyen gyorsan bonthatja a kapcsolatot és kapcsolódhat újra szerveredre. Beállíthatod a set::throttle blokkban, hogy X kapcsolatot engedélyezzen YY másodperc alatt ugyanarról az IP-ről.
Csatornamódok
-Vannak csatornamódok is, amelyek nagyon hatásosak lehetnek floodok ellen. Hogy néhányat megnevezzünk:
-K = nincs /knock (bekopogás), N = nincsenek nickváltások, C = nincsenek CTCP-k, M = csak regisztált felhasználók beszélhetnek.
+Vannak csatornamódok is, amelyek nagyon hatásosak lehetnek árasztások (floodok) ellen. Hogy néhányat megnevezzünk:
+K = nincs /knock (bekopogás), N = nincsenek nickváltások, C = nincsenek CTCP-k, M = csak regisztrált felhasználók beszélhetnek, j = belépések számának szabályozása (felhasználónkénti alapon)
A beta18 óta egy sokkal fejlettebb, +f csatornamód is használható...
Az f csatornamód
A csatornabeli áradatok elleni védelem most már beleépült az ircd-be ezen csatornamódként, hogy ne kelljen scripteket és a botokat használni.
Egy példa a +f módra: *** Blah sets mode: +f [10j]:15
Ez azt jelenti, hogy 10 belépés engedélyezett a csatornára 15 másodpercenként. Ha a korlátot túllépik, a +i csatornamód lesz automatikusan beállítva.
-A következő floodtípusok állnak rendelkezésre:
+A következő árasztástípusok állnak rendelkezésre:
@@ -409,7 +410,7 @@ P Valójában sokkal haladóbb, bonyolultabb is lehet:
-Bizonyos floodtípusoknál az alapértelmezett tevékenység helyett egy másikat is meghatározhatsz, például: +f [20j#R,50m#M]:15
+Bizonyos árasztástípusoknál az alapértelmezett tevékenység helyett egy másikat is meghatározhatsz, például: +f [20j#R,50m#M]:15
Ez a csatornát +R-re állítja, ha a belépési határt elérték (>20 belépés 15 másodperc alatt), és +M-re, ha a megengedett üzenetek számát elérték (>50 üzenet 15 másodperc alatt).

@@ -437,8 +438,8 @@ az ig Ha ez egy hatalmas felhasználói bázisú csatorna (>75 felhasználóval?), a belépési érzékenységet jobb növelni (például 50-re), és az üzenethatárt is ugyanúgy (például 60-ra vagy 75-re).
A módtörlési idők különösképpen egyéni ízlés dolgai.. olyasmire kellene gondolnod, mint.. mi van, ha nincs elérhető operátor a helyzet -kezelésére? Szeretném-e a csatornát lezárni pl. 15 percre (=nem kellemes a felhasználóknak) vagy 5 percre (=feltehetőleg a floodolók -csak várni fognak 5 percet, és árasztanak újra)? Függ a flood típusától is; ha a felhasználók képtelen belépni (+i) vagy beszélni (+m), az rosszabb, mint +kezelésére? Szeretném-e a csatornát lezárni pl. 15 percre (=nem kellemes a felhasználóknak) vagy 5 percre (=feltehetőleg az árasztók +csak várni fognak 5 percet, és árasztanak újra)? Függ az árasztás típusától is; ha a felhasználók képtelen belépni (+i) vagy beszélni (+m), az rosszabb, mint ha nem változtathatják meg a neveiket (+N) vagy nem küldhetnek ctcp-ket a csatornára (+C), tehát érdemesebb különböző törlési időket használni.

@@ -497,7 +498,7 @@ A modulok b - +
típus:név:alapért. tevékenység:más elérhető
tevékenységek:
megjegyzés
cCTCP-kautomatikus +Cm, M 
ddccDCC fájlnév
aawayTávolléti üzenet
ttopicTémabeállítás
uuserFelhasználó kitiltása, nick!user@host:valósnév alakú illeszkedési maszk
uuserFelhasználó kitiltása, nick!user@host:valósnév alakú illesztési maszk
Egyszerre több célpontot is megadhatsz, például így: cpNn [tevékenység] meghatározza az elvégzendő tevékenységet (csak 1 tevékenység adható meg)
@@ -561,7 +562,48 @@ haszn 127.0.0.0/8 (illeszkedési tartománya 127.0.0.0 - 127.255.255.255) és fe80:0:0:123::/64 (illeszkedési tartománya fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).

-

3.16 - További featúrák

+

3.16 - Karakterkészletek nicknevekhez

+

Az UnrealIRCd-nek most már megvan az a képessége, hogy meghatározzuk, milyen karakterkészleteket/nyelveket szeretnénk engedélyezni +a nicknevekben. Ezt a set::allowed-nickchars direktívával tehetjük meg.
+Egy táblázat az összes választási lehetőségről:
+ + + + + + + + + + + + + + + + + + + + + + + + +
Név:Leírás:Karakterkészlet/kódolás:
catalanKatalán karakterekiso8859-1 (latin1)
dutchHolland karakterekiso8859-1 (latin1)
frenchFrancia karakterekiso8859-1 (latin1)
germanNémet karakterekiso8859-1 (latin1)
swiss-germanSvájci német karakterek (nincs es-zett)iso8859-1 (latin1)
icelandicIzlandi karakterekiso8859-1 (latin1)
italianOlasz karakterekiso8859-1 (latin1)
spanishSpanyol karakterekiso8859-1 (latin1)
swedishSvéd karakterekiso8859-1 (latin1)
latin1Holland, francia, német, svájci német, spanyol, izlandi, olasz, svédiso8859-1 (latin1)
hungarianMagyar karakterekiso8859-2 (latin2)
polishLengyel karakterekiso8859-2 (latin2)
latin2Magyar, lengyeliso8859-2 (latin2)
polish-w1250Lengyel karakterek, Windows-os változat (sajnos gyakoribb, mint az iso)windows-1250 (cp1250)
greekGörög karakterekiso8859-7
turkishTörök karakterekiso8859-9
hebrewHéber karakterekiso8859-8-I/windows-1255
chinese-simpEgyszerűsített kínaiTöbb-bájtos: GBK/GB2312
chinese-tradHagyományos kínaiTöbb-bájtos: GBK
chinese-jaJapán hiragana/pinyinTöbb-bájtos: GBK
chinesechinese-*Több-bájtos: GBK
gbkchinese-*Több-bájtos: GBK
+Ügyeljünk arra, hogy néhány kombináció problémákat okozhat. +Például ha keverjük a latin* és chinese-* nyelveket, azt IRCd nem tudja +megfelelően kezelni, és az Unreal hibaüzenetet fog kiírni. +Más karakterkészletek együttes használata lehet, hogy megjelenítési problémákat okoz, ezért az Unreal +figyelmeztetést fog adni, ha keverjük a latin1/latin2/greek karakterkészleteket.

+ +1. Példa: nyugat-európai népeknek:
+

set { allowed-nickchars { latin1; }; };
+2. Példa: ha főleg kínai felhasználóink vannak, és a "rendes" kínai karaktereket szeretnénk engedélyezni:
+
set { allowed-nickchars { chinese-simp; chinese-trad; }; };
+

+ +

3.17 - További featúrák

Az UnrealIRCd-nek rengeteg featúrája van, ezért itt nincs minden megemlítve... Rájössz majd magadtól is.

@@ -685,7 +727,7 @@ class <name> {

A connfreq csak szerverekre használható, és a kapcsolódási kísérletek közötti időt jelenti másodpercekben, ha az autoconnect engedélyezve van.

A maxclients meghatározza, hogy maximálisan (összesen) hány kliens/szerver tartozhat ebbe a kapcsolati osztályba.

A sendq meghatározza azt az adatmennyiséget, amennyi megengedett a küldésre várakozó üzenetek sorában [send queue] (legyen nagyon magas alacsony sávszélességű szerverekhez, közepes a kliensekhez).

-

A recvq meghatározza azt az adatmennyiséget, amennyi megengedett a fogadásra váró üzenetek sorában [receive queue], és ezt használjuk flood-szabályozásra +

A recvq meghatározza azt az adatmennyiséget, amennyi megengedett a fogadásra váró üzenetek sorában [receive queue]; ezt használjuk az árasztások szabályozására (csak normál felhasználókra vonatkozik, 8000 ajánlott, ez az alapértelmezés is; kísérletezhetsz 3000-8000 közötti értékekkel).

Példák:

@@ -2155,6 +2197,8 @@ set {
   Meghatározza a csatornabeli services parancsok előtag karaktereit. Azok az üzenetek, amelyek az
   itt megadott karakterek bármelyikével kezdődnek, még olyan kliensekhez is el lesznek küldve, amelyek
   a +d móddal rendelkeznek. Az alapérték "`".

+

set::allowed-nickchars { <felsorolás> };
+ Nicknevekben engedélyezendő karakterkészletek / nyelvek, lásd: Karakterkészletek nicknevekben.

set::allow-userhost-change [never|always|not-on-channels|force-rejoin]
Meghatározza, hogy mi történjen, ha az user@host megváltozik (+x/-x/chghost/chgident/setident/vhost/stb. esetén).
A never letiltja mindegyik parancsot, az always akkor is engedélyezi, ha a felhasználó csatorná(k) tagja (szinkronhibát @@ -2277,7 +2321,7 @@ set {

set::ident::read-timeout <időérték>;
Azon másodpercek száma, ami után az Unreal hagyjon fel az ident válaszra várakozással (alapértelmezés: 30s).

set::anti-flood::unknown-flood-bantime <időérték>;
- Meghatározza, mennyi időre legyen kitiltva egy ismeretlen kapcsolatú floodoló.

+ Meghatározza, mennyi időre legyen kitiltva egy ismeretlen kapcsolatú árasztó.

set::anti-flood::unknown-flood-amount <szám>;
Meghatározza azt az adatmennyiséget (kilobájtokban), amit egy ismeretlen kapcsolatnak el kell küldenie ahhoz, hogy ki legyen tiltva.

@@ -2371,27 +2415,19 @@ set {
e <nick!user@host>
- Kitiltás alóli kivétel – Ha valaki illik erre, akkor is beléphet a csatornára, - ha egy létező banra illik + Kitiltás alóli kivétel – Ha valakire ráillik ez a maszk, akkor is beléphet a csatornára, + ha egy létező kitiltás nem engedi be -
f * <sor:mp>
- Árasztásvédelem – Ha a * meg van adva, és egy felhasználó <sor> sornál többet küld - <mp> másodperc alatt, ki lesz rúgva és tiltva a csatornáról; * nélkül csak kirúgva +
f [<szám><típus>]:<mp>
+ Árasztásvédelem csatornákra. Lásd a fenti 3.12-es szekciót + egy részletesebb leíráshoz.
G
G-osztályúvá teszi a csatornát. Ellenőrzi a badword blokkokban felsorolt szavakat, és kicseréli őket a megadott szavakkal - -
j <belépés:mp>
- Leszabályozza a felhasználónkénti belépéseket legfeljebb belépés számú belépésre mp másodpercenként - - -
M
- Egy regisztrált nicknév (+r) kell, hogy beszélhess -
h <nick>
Féloperátori beosztást ad a felhasználónak @@ -2400,6 +2436,15 @@ set {
i
Meghívás szükséges + +
I <nick!user@host>
+ Meghívás alóli kivételek (invite exceptions avagy "invex") - ha valaki illik erre a maszkra, átugorhatja + a +i igényeit, hogy beléphessen a csatornára. + + +
j <belépés:mp>
+ Leszabályozza a felhasználónkénti belépéseket legfeljebb belépés számú belépésre mp másodperc alatt +
K
A /knock nem megengedett @@ -2416,6 +2461,10 @@ set {
L <csatorna>
Ha a +l által beállított számot elérték, a felhasználók erre a csatornára lesznek küldve + +
M
+ Csak regisztrált nicknevű (+r) felhasználók beszélhetnek +
m
Moderált csatorna. Csak +v/o/h felhasználók beszélhetnek @@ -2495,65 +2544,17 @@ set {
Felhasználói módok
- -
r
- Regisztráltnak tekinti nicknevet - - -
s
- Látja a szerver értesítéseit - - -
v
- Fogadja a fertőzött DCC-k küldésének elutasításáról szóló értesítéseket - - -
o
- Globális IRC operátor (az oper blokkban állítható be) - - -
O
- Helyi IRC operátor (az oper blokkban állítható be) - - -
B
- Botként jelöl meg - - -
i
- Láthatatlan (nem jelenik meg a /who-ban) -
A
Szerver admin (az oper blokkban állítható be) - -
x
- Rejtett gazdanevet ad a felhasználónak - - -
q
- Csak U:Line-ok rúghatnak ki téged (csak Services adminoknak) -
a
Services admin (az oper blokkban állítható be) -
g
- Küldhet és fogadhat globops és locops üzeneteket - - -
H
- Elrejti az IRCop beosztásodat (csak IRCopoknak) - - -
S
- Védelmet ad a services kiszolgálóknak - - -
t
- Jelzi, hogy /vhost-ot használsz +
B
+ Botként jelöl meg
C
@@ -2564,45 +2565,93 @@ set { Nem fogadsz csatornabeli PRIVMSG-ket -
N
- Hálózati adminisztrátor (az oper blokkban állítható be) +
G
+ Kiszűr minden csúnya szót a beállítások szerint -
w
- Fogadja a wallop üzeneteket +
g
+ Küldhet és fogadhat globops és locops üzeneteket + + +
H
+ Elrejti az IRCop beosztásodat (csak IRCopoknak)
h
Segítségnyújtásra alkalmas (HelpOp) (az oper blokkban állítható be) -
G
- Kiszűr minden csúnya szót a konfiguráció szerint +
i
+ Láthatatlan (nem jelenik meg a /who-ban) + + +
N
+ Hálózati adminisztrátor (az oper blokkban állítható be) + + +
O
+ Helyi IRC operátor (az oper blokkban állítható be) + + +
o
+ Globális IRC operátor (az oper blokkban állítható be) + + +
p
+ Elrejti a /whois-odban azokat a csatornákat, ahová beléptél + + +
q
+ Csak U:Line-ok rúghatnak ki (csak Services adminoknak) + + +
R
+ Csak regisztrált (+r) felhasználóktól fogadsz PRIVMSG/NOTICE üzeneteket + + +
r
+ Regisztráltnak tekinti a nickneved + + +
S
+ Védelmet ad a services kiszolgálóknak + + +
s
+ Látod a szerver értesítéseit (lásd a 3.3-as szekciót további információért) + + +
T
+ Nem fogadsz CTCP üzeneteket + + +
t
+ Jelzi, hogy /vhost-ot használsz + + +
V
+ WebTV felhasználóként jelöl meg + + +
v
+ Fogadja a fertőzött DCC-k küldésének elutasításáról szóló értesítéseket
W
Láthatod, ha az emberek /whois-olnak téged (csak IRCopoknak) -
p
- Elrejti azon csatornákat a /whois-odból, amelyeknek tagja vagy +
w
+ Fogadja a wallop üzeneteket -
R
- PRIVMSG/NOTICE üzeneteket csak regisztrált (+r) felhasználóktól fogadsz - - -
V
- WebTV felhasználóként jelöl meg +
x
+ Rejtett gazdanevet ad a felhasználónak
z
Jelzi, hogy SSL kliens vagy - -
T
- Megakadályozza, hogy CTCP üzeneteket fogadj -

7 – Felhasználói és operátori parancsok táblázata

@@ -2839,6 +2888,11 @@ tov hogy a DNS gyorsítótár bejegyzéseiről kapjanak listát. Mindenki + + userip <nick>
+ Visszaadja a megadott felhasználó IP címét. + Mindenki + oper <azonosító> <jelszó>
Ez a parancs egy felhasználónak operátori beosztást ad, ha illik egy oper blokkra.
@@ -3212,13 +3266,13 @@ Ugyanezen okb

8.6. Denial of Service támadások (DoS) [avagy: hogyan védd meg a hubodat]

-Rengeteg hálózat tapasztalta már, milyen jó "móka" egy flood vagy egy (D)DoS támadás, azonban tehetsz +Rengeteg hálózat tapasztalta már, milyen jó "móka" egy árasztás vagy egy (D)DoS támadás, azonban tehetsz néhány óvintézkedést, hogy az általa okozott kárt lecsökkentsd. A legtöbb hálózatnak van hub szervere, de úgy tűnik, néhányan elfelejtik, hogy meglehetősen könnyű megvédeni a hub szervert a támadásoktól.
Itt elmagyarázom:
1. Állítsd a hub nevét egy nemlétező gazdanévre, pl. "hub.sajátnet.com"-ra, de
    de ne csinálj neki dns rekordot. Ily módon a támadó nem tudja feloldani a gazdanevet, és
-    nem is tudja floodoltatni. Ezután egyszerűen linkeld a szervereidet a hubra az
+    nem is tudja árasztani. Ezután egyszerűen linkeld a szervereidet a hubra az
    IP cím vagy egyéb más, nem nyilvános gazdanév megadásával.
    1. Példa: link lathatonev.sajatnet.com { hostname 194.15.123.16; [stb] };.
    2. Példa: link lathatonev.sajatnet.com { hostname mukodogazdanev.sajatnet.com; [stb] };.
@@ -3231,7 +3285,7 @@ b
Természetesen ezek a lépések kevésbé hasznosak, ha túl későn történnek meg (pl.: egy hónap után), mintsem
a kezdetektől fogva, mert lehet, hogy az IP címek már ismertek néhány gonosz fickó számára, de mégis... azért megéri megtenni.
-Az is megjegyzendő, hogy a támadók még így is lefloodolhatnak minden nem hub szervert, de az több erőfeszítést igényel,
+Az is megjegyzendő, hogy a támadók még így is eláraszthatnak minden nem hub szervert, de az több erőfeszítést igényel,
mint megtámadni csak 1-2 gyenge pontot (a hubokat), és így a hubjaid valamint a szolgáltatások életben maradnak :).

@@ -3293,7 +3347,7 @@ a kiad

8.9. Összefoglalás

-Mint mostmár remélhetőleg érted, soha nem lehetsz 100% biztonságban. Neked és nekünk is rentegeg biztonsági +Mint most már remélhetőleg érted, soha nem lehetsz 100% biztonságban. Neked és nekünk is rentegeg biztonsági lyukat kell megtalálnunk odakint, miközben egy támadónak elég csak 1 szervert megtalálnia 1 lyukkal. Minden, amit itt elmagyaráztunk, azonban SEGÍT megfontoltan minimálissá tenni a veszélyeket. Áldozz egy kevés időt arra, hogy a hálózatodat biztonságossá tedd, és oktasd az operátoraidat. @@ -3329,7 +3383,7 @@ Alap HELLO
És a következő regexünk:
.+L

-Ebben a példában, lehet, hogy azt gondoljuk, hogy a .+ a "HE"-re illeszkedik. Azonban ez helytelen. Mivel a + mohó, a "HEL"-re illeszkedik. Az indok az, hogy a beviteli szöveg legnagyobb egyeztethető részét választja, miközben mégis megengedi a teljes regexnek, hogy illeszkedjen. Ebben a példában azért választotta a "HEL"-t, mert az egyetlen másik követelmény csak az, hogy a ".+"-ra illeszkedő szöveg utáni karakternek "L"-nek kell lennie. Mivel a szöveg "HELLO", a "HEL"-t "L" követi, ezért illeszkedik. Néha viszont jól jön, ha egy operátort nem mohóvá tudunk tenni. Ezt úgy tehetjük meg, hogy "?"-et teszünk az ismétlő operátor után. A fentit módosítva ".+?L"-re, a .+? mostmár a "HE"-re illeszkedik, mintsem a "HEL"-re, mert nem mohó állapotba helyeztük. A ? bármilyen ismétlő karakter után helyezhető: ??, *?, +?, {M,N}?.

+Ebben a példában, lehet, hogy azt gondoljuk, hogy a .+ a "HE"-re illeszkedik. Azonban ez helytelen. Mivel a + mohó, a "HEL"-re illeszkedik. Az indok az, hogy a beviteli szöveg legnagyobb egyeztethető részét választja, miközben mégis megengedi a teljes regexnek, hogy illeszkedjen. Ebben a példában azért választotta a "HEL"-t, mert az egyetlen másik követelmény csak az, hogy a ".+"-ra illeszkedő szöveg utáni karakternek "L"-nek kell lennie. Mivel a szöveg "HELLO", a "HEL"-t "L" követi, ezért illeszkedik. Néha viszont jól jön, ha egy operátort nem mohóvá tudunk tenni. Ezt úgy tehetjük meg, hogy "?"-et teszünk az ismétlő operátor után. A fentit módosítva ".+?L"-re, a .+? most már a "HE"-re illeszkedik, mintsem a "HEL"-re, mert nem mohó állapotba helyeztük. A ? bármilyen ismétlő karakter után helyezhető: ??, *?, +?, {M,N}?.

A.4 Zárójeles kifejezések

A zárójeles kifejezések kényelmes módot nyújtanak ahhoz, hogy "vagy" műveletet végezzünk. Például ha azt szeretnénk mondani, hogy "illeszkedjen az a-ra vagy a b-re". A zárójeles kifejezés onnan kapja a nevét, hogy zárójelek ([]) közé tesszük. Az alapvető szintaktikája az, hogy ez a kifejezés magában foglal egy karaktersorozatot. Ezeket a karaktereket majd úgy kezeli, mintha "vagy" lenne közöttük. Például az "[abc]" kifejezés illeszkedik egy "a", egy "b" vagy egy "c" karakterre. Ezért az "a[bd]c" regex illeszkedik az "abc"-re és az "adc"-re, de az "acc"-re nem.