Чтобы соответствовать URL-адресам, содержащим строку "category_XXX", где XXX представляет любой набор символов, и затем обернуть их в BBCode, вы можете использовать следующее регулярное выражение:
Для нахождения URL:
```
\bhttps?:\/\/\S*category_\S+
```
- `\b` - указывает на границу слова, чтобы убедиться, что URL не подцепляется с середины строки.
- `https?` - соответствует протоколу "http" за которым может следовать символ "s" (означает HTTPS).
- `:\/\/` - соответствует "://" (обратный слеш используется для экранирования специальных символов).
- `\S*` - соответствует любому количеству непробельных символов.
- `category_` - точное соответствие строки "category_".
- `\S+` - соответствует одному или более непробельных символов после "category_".
Для замены найденных URL на BBCode, например, вам может потребоваться использовать функцию замены вставляющую BBCode. В зависимости от того, где и как вы используете регулярное выражение (например, в Python, JavaScript, PHP, и т. д.), команда замены может выглядеть по-разному. Но общая идея примерно такая:
```
[URL=\0]\0[/URL]
```
Где `\0` обозначает весь найденный URL. В языках, где поддерживаются подвыражения это может быть `$0` или другие конструкции в зависимости от контекста.
Пример замены в Python:
```python
import re
text = "Some text with http://example.com/category_XXX and another URL https://example.com/category_YYY"
pattern = r'\bhttps?:\/\/\S*category_\S+'
replacement = r'[URL=\g<0>]\g<0>[/URL]'
result = re.sub(pattern, replacement, text)
print(result)
```
Этот код найдет все URL-адреса, содержащие "category_", и обернет их в BBCode.
Помните, что из-за огромного разнообразия возможных URL, регулярное выражение для их определения может легко стать очень сложным и все еще не учесть определенные корнер-кейсы. Вышеуказанное регулярное выражение - это упрощенный пример, который может не работать должным образом с очень сложными или нестандартными URL.