import re

def is_valid_project_name(name):
    """Test the validation function"""
    import re

    if not name or len(name) < 4:
        return False, "Too short"

    name = name.strip()
    name_lower = name.lower()

    # Reject patterns that start with numbers/special chars
    if re.match(r'^[0-9]+\.', name):
        return False, "Starts with number."

    if name.startswith('?') or name.startswith('*'):
        return False, "Starts with special char"

    if name.startswith('Merging:'):
        return False, "Merging pattern"

    # Must start with alphanumeric
    if not name[0].isalnum():
        return False, "Doesn't start with alphanumeric"

    return True, "Valid"

# Test the problematic names
test_names = [
    'mahindraManulifeDistributor',
    'mahindraCMS',
    'mahindraManulifeRetail',
    'mahindra-cms',
    'radiant_clone',
    'timesheet_new',
]

print("Testing validation:")
print("-" * 70)
for name in test_names:
    valid, reason = is_valid_project_name(name)
    status = "✓ PASS" if valid else "✗ FAIL"
    print(f"{status} | {name:40} | {reason}")
