@NotNull
 String[][] getKnownCharacterClasses(@NotNull final PsiElement element) {
   final RegExpLanguageHost host = findRegExpHost(element);
   return host != null
       ? host.getKnownCharacterClasses()
       : myDefaultProvider.getKnownCharacterClasses();
 }
 @Nullable
 String getPropertyDescription(@NotNull final PsiElement element, @Nullable final String name) {
   final RegExpLanguageHost host = findRegExpHost(element);
   return host != null
       ? host.getPropertyDescription(name)
       : myDefaultProvider.getPropertyDescription(name);
 }
 private RegExpLanguageHosts() {
   super("com.intellij.regExpLanguageHost");
   myDefaultProvider = DefaultRegExpPropertiesProvider.getInstance();
 }
 String[][] getPosixCharacterClasses(@NotNull final PsiElement element) {
   return myDefaultProvider.getPosixCharacterClasses();
 }
 @NotNull
 public String[][] getAllKnownProperties(@NotNull final PsiElement element) {
   final RegExpLanguageHost host = findRegExpHost(element);
   return host != null ? host.getAllKnownProperties() : myDefaultProvider.getAllKnownProperties();
 }
 public boolean isValidCategory(@NotNull final PsiElement element, @NotNull String category) {
   final RegExpLanguageHost host = findRegExpHost(element);
   return host != null
       ? host.isValidCategory(category)
       : myDefaultProvider.isValidCategory(category);
 }