Weil dein regulärer Ausdruck /ibis*./ lautet, was bedeutet, dass zunächst ein “ibi” vorkommen muss, dann beliebig viele inklusive 0 “s” (wegen “s*”) und schließlich noch ein beliebiges Zeichen (.) - wird im Falle von “IBIS” zu s, in den anderen Fällen jeweils auf den Buchstaben abgebildet, der nach der “ibi”-Zeichenfolge im jeweiligen Namen kommt.
Es reicht übrigens /ibis/ als regulärer Ausdruck aus. Denn es werden automatisch alle Matches genommen, die das irgendwo enthalten. Man muss sich also nicht darum kümmern, dass der Name-String noch länger sein könnte.
Die Groß- und Kleinschreibung wird doch beim Prüfen bereits ignoriert. /ibis/ trifft also auch “IBIS” oder “iBiS”. Umgekehrt geht es leider nicht, man kann also nicht case-sensitive matchen, weil Overpass Turbo intern automatisch für jeden regulären Ausdruck case-insensitve für das Matching setzt, ohne dass man das überschreiben kann.
Ignorieren ist leider der Standardwert (es wird intern immer eine RegExp mit “i” als Flag erzeugt). Das lässt sich dadurch nicht aufheben und deshalb kann man nicht auf exakte Groß- und Kleinschreibung prüfen.
Darüber hinaus würdest du mit “/ibis/i” bei Overpass Turbo sogar komplett Pech haben, denn RegExp-Flags akzeptiert er nicht als Eingabe, sondern ignoriert dann den gesamten Ausdruck. Leider ist das Parsing und die Umsetzung von MapCSS in Overpass Turbo ziemlich gefrickelt, so dass das teilweise nur mit Abstrichen funktioniert.
Also name~/ibis/i in Braunschweig findet das Hotel (name=Ibis Budget) in der Saarbrücker Straße, während name~/ibis/ in Braunschweig es nicht findet.
=>
ohne i : Klein-/Großschreibung wird beachtet
mit i : Klein-/Großschreibung wird ignoriert
Ich bin da auch nicht zufällig drauf gestoßen, sondern habe es in Wiki am Ende des Abschnittes “Tag Searches” gefunden.
Oder habe ich etwas prinzipielles falsch verstanden?
Wir reden hier über zwei verschiedene Dinge: Es geht hier nicht darum, innerhalb der eigentliche Abfrage Tags auf reguläre Ausdrücke zu prüfen (das sind deine Beispiele). Sondern es geht hier darum, nach der eigentlichen Abfrage bei der Darstellung verschiedene Objekte auf der Ergebniskarte verschieden darzustellen. Dazu kann man zusätzlich eine Style-Beschreibung in Form von MapCSS hinzufügen, an Hand der dann im Beispiel von Benutzer Lübeck einzelnen Hotels verschiedene Icons auf der Karte zugeordnet werden. Auch dafür kann man reguläre Ausdrücke verwenden - dabei gelten aber die Beschränkungen bei der Auswertung von MapCSS durch Overpass Turbo.
Die XML Variante finde ich einigermaßen gruselig wortreich, daher mal alternativ in Overpass QL und mit case-insensitive. Damit entfällt die umständliche Angabe von Groß/Kleinbuchstabe ([Mm][Oo]…) auch:
[bbox:{{bbox}}];
(
node ["tourism"="hotel"]["name"~"^ibis",i];
way ["tourism"="hotel"]["name"~"^ibis",i];
node ["tourism"="motel"]["name"~"^ibis",i];
way ["tourism"="motel"]["name"~"^ibis",i];
node ["tourism"="hotel"]["name"~"^motel one",i];
way ["tourism"="hotel"]["name"~"^motel one",i];
node ["tourism"="motel"]["name"~"^motel one",i];
way ["tourism"="motel"]["name"~"^motel one",i];
);
out meta center;
noch kompakter:
[bbox:{{bbox}}];
(
node ["tourism"~"^(hotel|motel)$"]["name"~"^(ibis|motel one)",i];
way ["tourism"~"^(hotel|motel)$"]["name"~"^(ibis|motel one)",i];
);
out meta center;