Catch more file patterns (#1463)

Previously `buildifier -r .` would not pick up `foo.BUILD.bazel` files
or `foo.BUILD` files even though the `runner.bash.template` would. This
attempts to unify these.
diff --git a/buildifier/runner.bash.template b/buildifier/runner.bash.template
index 06a969b..e509163 100644
--- a/buildifier/runner.bash.template
+++ b/buildifier/runner.bash.template
@@ -47,17 +47,14 @@
   @@EXCLUDE_PATTERNS@@ \
   \( -name '*.bzl' \
     -o -name '*.sky' \
-    -o -name BUILD.bazel \
+    -o -name '*.star' \
+    -o -name '*.bazel' \
     -o -name BUILD \
     -o -name '*.BUILD' \
-    -o -name 'BUILD.*.bazel' \
+    -o -name BUILD.oss \
     -o -name 'BUILD.*.oss' \
-    -o -name MODULE.bazel \
-    -o -name '*.MODULE.bazel' \
     -o -name WORKSPACE \
-    -o -name WORKSPACE.bazel \
     -o -name WORKSPACE.oss \
     -o -name WORKSPACE.bzlmod \
-    -o -name 'WORKSPACE.*.bazel' \
     -o -name 'WORKSPACE.*.oss' \
   \) -print | xargs "$buildifier_short_path" "${ARGS[@]}"
diff --git a/buildifier/runner.bat.template b/buildifier/runner.bat.template
index 1d359cd..f5d1e58 100644
--- a/buildifier/runner.bat.template
+++ b/buildifier/runner.bat.template
@@ -14,17 +14,17 @@
 powershell ^
 $Files = Get-ChildItem -LiteralPath '%BUILD_WORKSPACE_DIRECTORY:/=\%' -Recurse -File -ErrorAction SilentlyContinue ^|^
     Where-Object {^
-        $_.Name -eq 'BUILD.bazel' `^
-        -or $_.Name -eq 'BUILD' `^
+        $_.Name -eq 'BUILD' `^
         -or $_.Name -eq 'WORKSPACE' `^
-        -or $_.Name -eq 'WORKSPACE.bazel' `^
         -or $_.Name -eq 'WORKSPACE.oss' `^
-        -or $_.Name  -clike '*.bzl' `^
+        -or $_.Name -eq 'WORKSPACE.bzlmod' `^
+        -or $_.Name -eq 'BUILD.oss' `^
+        -or $_.Name -clike '*.bazel' `^
+        -or $_.Name -clike '*.bzl' `^
         -or $_.Name -clike '*.sky' `^
+        -or $_.Name -clike '*.star' `^
         -or $_.Name -clike '*.BUILD' `^
-        -or $_.Name -clike 'BUILD.*.bazel' `^
         -or $_.Name -clike 'BUILD.*.oss' `^
-        -or $_.Name -clike 'WORKSPACE.*.bazel' `^
         -or $_.Name -clike 'WORKSPACE.*.oss'^
     };^
  ^<# Process files in batches of 100- to avoid exceeding CreateProcess' maximum length of 32,767 characters #^> ^
diff --git a/buildifier/utils/utils.go b/buildifier/utils/utils.go
index ded4036..988f0d0 100644
--- a/buildifier/utils/utils.go
+++ b/buildifier/utils/utils.go
@@ -30,18 +30,16 @@
 func isStarlarkFile(name string) bool {
 	ext := filepath.Ext(name)
 	switch ext {
-	case ".bzl", ".sky", ".star":
+	case ".bazel", ".BUILD", ".bzl", ".sky", ".star":
 		return true
 	}
 
 	switch ext {
-	case ".bazel", ".oss":
-		// BUILD.bazel or BUILD.foo.bazel should be treated as Starlark files, same for WORSKSPACE and MODULE
-		// MODULE files flip the order: [prefix.]MODULE.bazel
-		return strings.HasPrefix(name, "BUILD.") || strings.HasPrefix(name, "WORKSPACE.") || strings.HasSuffix(name, "MODULE.bazel")
+	case ".oss":
+		return strings.HasPrefix(name, "BUILD.") || strings.HasPrefix(name, "WORKSPACE.")
 	}
 
-	return name == "BUILD" || name == "WORKSPACE"
+	return name == "BUILD" || name == "WORKSPACE" || name == "WORKSPACE.bzlmod"
 }
 
 func skip(info os.FileInfo) bool {
diff --git a/buildifier/utils/utils_test.go b/buildifier/utils/utils_test.go
index 8e855b3..579c129 100644
--- a/buildifier/utils/utils_test.go
+++ b/buildifier/utils/utils_test.go
@@ -47,7 +47,15 @@
 		},
 		{
 			filename: "build.foo.bazel",
-			ok:       false,
+			ok:       true,
+		},
+		{
+			filename: "foo.BUILD.bazel",
+			ok:       true,
+		},
+		{
+			filename: "foo.BUILD",
+			ok:       true,
 		},
 		{
 			filename: "build.foo.oss",
@@ -79,7 +87,7 @@
 		},
 		{
 			filename: "workspace.foo.bazel",
-			ok:       false,
+			ok:       true,
 		},
 		{
 			filename: "workspace.foo.oss",
@@ -141,6 +149,14 @@
 			filename: "MODULE.bazel.other",
 			ok:       false,
 		},
+		{
+			filename: "foo.bazel",
+			ok:       true,
+		},
+		{
+			filename: "REPO.bazel",
+			ok:       true,
+		},
 	}
 
 	for _, tc := range tests {