```python
import re

def posting_lists(documents: list) -> dict:
    if not isinstance(documents, list):
        raise ValueError("Input must be a list of strings")
    
    index = {}
    for doc_idx, doc in enumerate(documents):
        if not isinstance(doc, str):
            raise ValueError("All documents must be strings")
        
        terms = re.findall(r'\b[a-zA-Z0-9]{2,}\b', doc.lower())
        unique_terms = set(terms)
        for term in unique_terms:
            if term.isdigit():
                continue
            if term not in index:
                index[term] = []
            if doc_idx not in index[term]:
                index[term].append(doc_idx)
    
    return index
```