--- /dev/null
+From e9f254ba3f923248efffe4fd458dc5e5469e0f73 Mon Sep 17 00:00:00 2001
+From: Aleksander Morgado <aleksander@aleksander.es>
+Date: Wed, 1 Dec 2021 21:40:00 +0100
+Subject: [PATCH] udev: avoid [0-9]* as shell globbing patterns
+
+The udev rules expect matches based on shell globbing pattern, not
+based on regex. This means that "[0-9]*" doesn't mean "zero or more
+digits", it actually means "one digit and zero or more other
+characters".
+
+So, avoid the regex like match, even if it worked for us, because it
+didn't mean what we thought it meant, plus, it breaks our custom udev
+rules processing logic, in which we convert the input patterns into
+real regex expressions.
+
+See https://bbs.archlinux.org/viewtopic.php?pid=1415916#p1415916
+
+While at it, also make sure that the wildcard matching is done
+exclusively for prefix and suffix matches, never in the middle of
+a string, or our custom rules parser would not match correctly.
+---
+ plugins/qcom-soc/77-mm-qcom-soc.rules | 8 ++++----
+ src/80-mm-candidate.rules | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+--- a/plugins/qcom-soc/77-mm-qcom-soc.rules
++++ b/plugins/qcom-soc/77-mm-qcom-soc.rules
+@@ -24,17 +24,17 @@ ENV{ID_MM_QCOM_SOC}="1"
+ ENV{ID_MM_PHYSDEV_UID}="qcom-soc"
+
+ # port type hints for the rpmsgexport-ed ports
+-SUBSYSTEM=="rpmsg", ATTR{name}=="DATA[0-9]*_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
+-SUBSYSTEM=="rpmsg", ATTR{name}=="DATA[0-9]", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
++SUBSYSTEM=="rpmsg", ATTR{name}=="DATA*", ATTR{name}=="*_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
++SUBSYSTEM=="rpmsg", ATTR{name}=="DATA*", ATTR{name}!="*_CNTL", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
+
+ # ignore every other port without explicit hints
+ SUBSYSTEM=="rpmsg", ENV{ID_MM_PORT_TYPE_QMI}!="1", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}!="1", ENV{ID_MM_PORT_IGNORE}="1"
+
+ # explicitly ignore ports intended for USB tethering (DATA40, DATA40_CNTL)
+ SUBSYSTEM=="rpmsg", ATTR{name}=="DATA40*", ENV{ID_MM_PORT_IGNORE}="1"
+-KERNEL=="rmnet_usb[0-9]*", ENV{ID_MM_PORT_IGNORE}="1"
++KERNEL=="rmnet_usb*", ENV{ID_MM_PORT_IGNORE}="1"
+
+ # flag all rpmsg ports under this plugin as candidate
+-KERNEL=="rpmsg[0-9]*", SUBSYSTEM=="rpmsg", ENV{ID_MM_CANDIDATE}="1"
++KERNEL=="rpmsg*", SUBSYSTEM=="rpmsg", ENV{ID_MM_CANDIDATE}="1"
+
+ LABEL="mm_qcom_soc_end"
+--- a/src/80-mm-candidate.rules
++++ b/src/80-mm-candidate.rules
+@@ -15,7 +15,7 @@ KERNEL=="rfcomm*", DEVPATH=="*/virtual/*
+
+ SUBSYSTEM=="tty", ENV{ID_MM_CANDIDATE}="1"
+ SUBSYSTEM=="net", ENV{ID_MM_CANDIDATE}="1"
+-KERNEL=="cdc-wdm[0-9]*", SUBSYSTEM=="usbmisc", ENV{ID_MM_CANDIDATE}="1"
++KERNEL=="cdc-wdm*", SUBSYSTEM=="usbmisc", ENV{ID_MM_CANDIDATE}="1"
+
+ # WWAN subsystem port handling
+ # - All USB devices ignored for now, only PCI devices expected