Index: src/wp-includes/user.php
===================================================================
--- src/wp-includes/user.php	(revision 38786)
+++ src/wp-includes/user.php	(working copy)
@@ -2440,7 +2440,7 @@
 	}
 
 	$prefix = $wpdb->get_blog_prefix();
-	$regex  = implode( '|', wp_roles()->get_names() );
+	$regex  = implode( '|', array_keys( wp_roles()->get_names() ) );
 	$regex  = preg_replace( '/[^a-zA-Z_\|-]/', '', $regex );
 	$users  = $wpdb->get_col( $wpdb->prepare( "
 		SELECT user_id
Index: tests/phpunit/tests/user/wpGetUsersWithNoRole.php
===================================================================
--- tests/phpunit/tests/user/wpGetUsersWithNoRole.php	(revision 38786)
+++ tests/phpunit/tests/user/wpGetUsersWithNoRole.php	(working copy)
@@ -6,6 +6,26 @@
 class Tests_User_GetUsersWithNoRole extends WP_UnitTestCase {
 
 	/**
+	 * Role comparison must be done on role name, not role display name.
+	 *
+	 * @ticket 38234
+	 */
+	public function test_get_users_with_no_role_matches_on_role_name() {
+		// Create a role with a display name which would not match the role name
+		// in a case-insentive SQL query.
+		global $wp_roles;
+		$wp_roles->add_role( 'somerole', 'Some role display name' );
+
+		$someuser = self::factory()->user->create( array(
+			'role' => 'somerole',
+		) );
+
+		$users = wp_get_users_with_no_role();
+
+		$this->assertEquals( array(), $users );
+	}
+
+	/**
 	 * @ticket 22993
 	 */
 	public function test_get_users_with_no_role_is_accurate() {
