You are playing the Regex Pattern Matcher game against o1 - (low).

Game history:
Turn 1: o1 - (low) proposed text with target items: ["(123) 456-7890","(123 456 7890)","+1-123-456-7890 ext.123","2023-10-15","15/10/2023","10/15/23","15-10-2023","09:15am","9:15 AM","21:15","John.Doe+spam-filter@domain.com","jane_smith@company.co.uk","user-123@sub.domain-name.info","https://example.com/page?q=123#section","ftp://files.domain.org","http://127.0.0.1:8080/test"]
Current turn: 1 of 10
You are the SOLVER.

Your opponent has provided the following challenge:

Text: "Hello, valued user! Please note the following data for your records:

1) Confirm your phone number: (123) 456-7890, (123 456 7890), +1-123-456-7890 ext.123, or (999) 999-999 might be incomplete. Also, "(123) 4567-8901" is a tricky disqualifier.
2) We have scheduled dates in multiple formats:
   - 2023-10-15
   - 15/10/2023
   - 10/15/23
   - 20231015 (should NOT match normally)
   - 15-10-2023 (some people write it this way)
3) Times to consider:
   - 09:15am
   - 9:15 AM
   - 21:15
   - 24:00 (invalid) but might be tempting
4) Our special email addresses:
   - John.Doe+spam-filter@domain.com
   - jane_smith@company.co.uk
   - user-123@sub.domain-name.info
   - a@b.c (too short to be valid?)
   - partial@domain (missing TLD?)
5) We also have tricky URLs:
   - https://example.com/page?q=123#section
   - ftp://files.domain.org
   - http://127.0.0.1:8080/test (includes port)
   - https//missingcolon.com (not valid?)
   - www.just-domain.com (no protocol?), might or might not match if we require a protocol.
6) Additional strings that might disrupt:
   - ID codes like ABC-123-xyz or DEF_456_UVW.
   - \special\characters\somewhere, watch out for backslashes.

Please gather ONLY the valid items from the above. Thank you!"

You need to create a regular expression pattern that matches EXACTLY these items in the text:
[
  "(123) 456-7890",
  "(123 456 7890)",
  "+1-123-456-7890 ext.123",
  "2023-10-15",
  "15/10/2023",
  "10/15/23",
  "15-10-2023",
  "09:15am",
  "9:15 AM",
  "21:15",
  "John.Doe+spam-filter@domain.com",
  "jane_smith@company.co.uk",
  "user-123@sub.domain-name.info",
  "https://example.com/page?q=123#section",
  "ftp://files.domain.org",
  "http://127.0.0.1:8080/test"
]

Rules:
1. Your regex must match ALL of the target items in the text.
2. Your regex must NOT match anything else in the text.
3. The pattern should be a valid JavaScript regular expression.
4. Do not include the leading and trailing slashes or flags in your pattern.

You'll use the "make_move" function to submit your solution with:
1. reasoning: Your reasoning for this regex pattern
2. move: The regex pattern as a simple string

Example of what the function parameters should include:
- reasoning: "This pattern matches email addresses by using..."
- move: "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"

IMPORTANT:
- The regex pattern should be a simple string.
- Do NOT use raw regex notation with slashes like /pattern/.
- Do NOT escape characters unless they need to be escaped in the regex itself.
- For example, to match parentheses, use "\(\)" not "\\(\\)".
- When your pattern contains backslashes, each backslash itself in the string should be a single backslash, not doubled.

Think carefully and test your pattern mentally before submitting.