amolip: RegEx: Once-only subpattern

Beitrag lesen

Hallo seth,

ok, du unterfaengst dich also, neue, bessere begriffe in den umlauf zu bringen. das ist mutig.

jedoch geht gerade bei internationalen, eingebuergerten begriffen durch nationale begriffsfindung immer auch ein stueck kommunikationserleichterung floeten.

Vielleicht hört sich das schlimmer an als es ist. Ich halte absolut nichts davon sich über eine bestehende Terminologie einfach hinwegzusetzen. Das tun nur Dummköpfe.

Ich komme aber nicht daran vorbei Begrifflichkeiten und Systematiken zu hinterfragen und mich gegebenenfalls darüber hinwegzusetzen. Es geht ja nicht darum zu sagen, das ist richtig und jenes ist falsch, sondern es ist ja in aller Regel eine Abwägungssache und eine Sache des Blickwinkels. Und – was in aller Regel übersehen wird – es geht ja nicht nur um rein fachliche Aspekte, sondern beispielsweise auch um didaktische Gesichtspunkte.
So etwas muss hart – und mich meine tatsächlich hart - diskutiert werden, was für mich ein großes Problem darstellt – nämlich ganz banal - mit wem? Deswegen bin ich für deine Beiträge wirklich dankbar, ich sehe jetzt schon, dass ich in dieser grundsätzlichen Frage nochmal mit mir in Klausur gehen muss.

Ich will mal den Begriff Subpattern nehmen, für dich, für mich - kein Thema. Aber, obwohl ein Subpattern ja noch zu den relativ anschaulichen Syntaxelementen gehört, für den Anfänger sind das böhmische Dörfer. Aber gar nicht so sehr, weil er die Definition nicht verstehen würde, zwei drei wirklich gute Beispiele, dann hat er schon mal ein Bild an dem er sich orientieren kann, sondern weil ihm in aller Regel keine Systematik vermittelt wird. Dabei handelt es sich um ganz banale Fragen. Es gibt also Subpattern, dann gibt's noch andere Subpattern, diese "non-capturing"-Dinger. Gibt`s eigentlich noch weitere Subpattern – oder war's das schon? Wenn ich jetzt Subpattern lese, meint er das eine oder das andere Ding? Wie lautet denn der Überbegriff? Gibt's so was? Ach so, auch Subpattern. Wenn ich jetzt Subpattern lese, meint er das eine oder das andere Ding oder meint er den Überbegriff? Wenn die einen "non-capturing" heißen, warum die anderen dann nicht "capturing"?
Usw. – banale Fragen – was ich damit sagen will, der Anfänger hat oft weniger mit den Begrifflichkeiten selber zu kämpfen als mit dem Verhältnis der Begriffe untereinander, der Systematik. Die Begriffe schwirren da noch wirr im luftleeren Raum umher.

Wie wird mir denn im allgemeinen der Begriff Subpattern erklärt?
Ich will mal versuchen zu schildern, wie es einem Anfänger gehen könnte, wenn er mit den üblichen Erklärungen zu Subpattern konfrontiert wird.
Es gibt Subpattern und dann noch diese anderen Subpattern, diese "non-capturing"-Dinger. Also das eine sind die Subpattern, die richtigen Subpattern. Das andere, die non-capturing Subpattern, sind halt eine spezielle Form davon, irgendwie sozusagen Unter-Subpattern. Deswegen hängt man da noch das "non-capturing" dran, um es vom richtigen Subpattern zu unterscheiden.

Jetzt die Definition (nur mit einem Stichwort, du weißt was ich meine)
Subpattern
1. Referenzierung
2. Wirkungsbereich
non-capturing Subpattern
1. Wirkungsbereich

Jetzt frage ich mich doch, warum heißt es eigentlich Subpattern und nicht capturing Subpattern und warum non-capturing Subpattern, statt einfach nur Subpattern? Warum ist das nicht genau anders herum? Sollte der Begriff Subpattern, der ja sowohl Oberbegriff als auch besondere Form ist, nicht für diejenige Form stehen, die das beinhaltet was beiden Formen gemeinsam ist, nämlich der Wirkungsbereich? Und diejenige Form, die hier noch etwas zusätzliches bietet, die Referenzierung, von der Hauptform abgegrenzt werden, beispielsweise indem man ein "capturing" hinzufügt?

Ein Anfänger geht nun nicht bewusst hin und analysiert die Systematik, aber unbewusst stellt er eine Reihe Fragen zum Verhältnis der Begriffe zueinander und weil er selber dieses Verhältnis nicht definieren kann, bleibt Unbehagen und letztendlich Unverständnis zurück.

Das Gegenbeispiel dazu wären die Lookarounds, da ist die Systematik ganz einfach, es gibt den Überbegriff Lookaround für die beiden gleichwertigen Unterbegriffe Lookahead und Lookbehind. Hier hat der Anfänger kein Problem mit der Systematik, dafür allerdings dann das Problem die Funktionsweise zu verstehen ;-)

Und jetzt will ich dir etwas sagen, lieber seth, ich halte die Begriffe Subpattern und non-capturing Subpattern, unter dem Blickwinkel der Systematik betrachtet für falsch, es müsste tatsächlich genau anders herum sein. Ein Subpattern ist ein Syntaxelement, dass einen Wirkungsbereich festlegt – Punkt. Dann gibt es noch die besondere Form des Subpatterns, das sog. capturing Subpattern, das sich dadurch auszeichnet, dass darauf referenziert werden kann - Punkt.

Das Problem ist – ich kann jetzt nicht einfach die bestehende Terminologie auf den Kopf stellen.
Und ich habe nun versucht mir so zu helfen, dass ich für ein non-capturing Subpattern, den Begriff Rangepattern (so will ich Bereichsmuster auf englisch einfach mal nennen) eingeführt habe. Es gibt also das Syntaxelement des Subpatterns mit dem man einen Wirkungsbereich festlegen und auf den man referenzieren kann, und es gibt das Syntaxelement des Rangepatterns mit dem nur einen Wirkungsbereich festlegen kann. Ich habe sie sozusagen entflochten, die Frage nach dem (vertikalen) Verhältnis stellt sich nicht mehr bzw. ist einfach beantwortet, das eine ist ein Syntaxelement und das andere ist ein Syntaxelement, sie sind souverän, das einzige was sie verbindet, ist, dass sie beide die Funktionaliät des Wirkungsbereiches beinhalten.

Und es gibt auch noch einen banalen Grund – die Lesbarkeit und dadurch die Verständlichkeit des Textes. Die wird durch ein sperriges Wort wie non-capturing Subpattern nicht gerade gefördert, da liest sich doch Rangepattern flüssiger.

Die Frage, ob ich letztendlich die englischen Begriffe Subpattern und Rangepattern oder die deutschen Begriffe Untermuster und Bereichsmuster verwende, ist, gemessen an diesen grundsätzlichen Überlegungen, zweitrangig.

Gruß Uwe