const text = "Hello 123 test@email.com"; // Text for all examples

// Create Regex
const regex = /pattern/flags;              // Literal notation
const regex2 = new RegExp("pattern", "flags"); // Constructor

// 1. Only Digits
const onlyDigits = /^\d+$/;
// 2. Only Lowercase Alphabets
const onlyLowercase = /^[a-z]+$/;
// 3. Only Uppercase Alphabets
const onlyUppercase = /^[A-Z]+$/;
// 4. Only Digits and Alphabets (both cases)
const alphanumeric = /^[a-zA-Z0-9]+$/;
// 5. Digits Minimum x Characters
const digitsMin3 = /^\d{3,}$/;
// 6. Alphabets Minimum x Characters
const alphabetsMin5 = /^[a-zA-Z]{5,}$/;
// 7. Digits Maximum x Characters
const digitsMax3 = /^\d{1,3}$/;
// 8. Alphabets Maximum x Characters
const alphabetsMax5 = /^[a-zA-Z]{1,5}$/;
// 9. Digits Min-Max Characters
const digitsMinMax = /^\d{3,8}$/;
// 10. Alphabets Min-Max Characters
const alphabetsMinMax = /^[a-zA-Z]{2,10}$/;
// 11. Moroccan Phone Number (starts with 05, 06, 07)
const moroccanPhone = /^0[567]\d{8}$/;
// 12. Simple Email
const simpleEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// 13. URL www.word.word
const urlWww = /^www\.[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// 14. URL word.word
const urlSimple = /^[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// 15. URL http://www.word.word
const urlHttpWww = /^http:\/\/www\.[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// 16. URL http://word.word
const urlHttp = /^http:\/\/[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// 17. URL https://www.word.word
const urlHttpsWww = /^https:\/\/www\.[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// 18. URL https://word.word
const urlHttps = /^https:\/\/[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// 19. URL http(s)://www.word.word OR http(s)://word.word
const urlComplete = /^https?:\/\/(www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// 20. Moroccan CIN (National ID)
const moroccanCIN = /^[A-Z]{1,2}\d{6}$/;
// 21. Strong Password (min 8 chars, upper, lower, digit, special char)
const strongPassword = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
// 22. IP Address (IPv4)
const ipAddress = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
// 23. MAC Address
const macAddress = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;
// 24. Hexadecimal Color Code
const hexColor = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
// 25. Credit Card Number (basic format)
const creditCard = /^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$/;
// 26. Time Format (HH:MM)
const timeFormat = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/;
// 27. Date Format (DD/MM/YYYY)
const dateFormat = /^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/\d{4}$/;
// 28. Postal Code (Morocco - 5 digits)
const moroccanPostal = /^\d{5}$/;
// 29. Username (alphanumeric, underscore, 3-16 chars)
const username = /^[a-zA-Z0-9_]{3,16}$/;
// 30. HTML Tag
const htmlTag = /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/;