```python
def tag_open(marker: str) -> str:
    if not marker.startswith('<') or not marker.endswith('>'):
        raise ValueError("Marker must be wrapped in angle brackets.")
    
    # Drop leading slash if present
    return marker[1:-1] if marker[0] == '/' else marker

def tag_pair(opening: str, closing: str) -> bool:
    if opening and closing != opening.lower():
        return False
    
    if not opening.startswith('<') or not opening.endswith('>'):
        raise ValueError("Opening marker must be wrapped in angle brackets.")
    
    if not closing.startswith('<') or not closing.endswith('>'):
        raise ValueError("Closing marker must be wrapped in angle brackets.")
    
    # Drop leading slash if present
    opening = opening[1:-1] if opening[0] == '/' else opening
    
    return opening.lower() == closing.lower()
```