OK, ich sehe das Problem. Probier mal das
\documentclass{article}
\usepackage{philex}
\makeatletter
% Wie \lb aber ohne optionales Argument und mit \exi statt \ex
\newcommand{\lbi}[2]{%
\ifdim\lastskip=.66\baselineskip
\vspace{-1.2\baselineskip}%
\fi
\immediate\write\@auxout{%
\unexpanded{%
\expandafter\gdef\csname#1r\endcsname{#2}%
\expandafter\gdef\csname#1\endcsname{\ref{#1}}%
\expandafter\gdef\csname#1p\endcsname{\MakeLowercase#2}%
}%
}%
\expandafter\providecommand\expandafter{\csname#1r\endcsname}{#2}%
\expandafter\providecommand\expandafter{\csname#1\endcsname}{\ref{#1}}%
\expandafter\providecommand\expandafter{\csname#1p\endcsname}{%
\MakeLowercase#2}%
\exi. #2\label{#2}\p\par
}
% Wie \lbu aber ohne optionales Argument und mit \exi statt \ex
\newcommand{\lbui}[4]{%
\label{#1}%
\immediate\write\@auxout{%
\unexpanded{%
\expandafter\gdef\csname#1p\endcsname{\MakeLowercase#4}%
\expandafter\gdef\csname #1\endcsname{\csname#2\endcsname#3}%
\expandafter\gdef\csname #1r\endcsname{#4}%
}%
}%
\expandafter\providecommand\expandafter{\csname#1p\endcsname}{%
\MakeLowercase#4}%
\expandafter\providecommand\expandafter{\csname #1\endcsname}{%
\csname#2\endcsname#3}%
\expandafter\providecommand\expandafter{\csname #1r\endcsname}{#4}%
\exi.[(\csname#2\endcsname#3)\hspace{-1em}] #4\p\par
}
\makeatother
\begin{document}
%Mit exi (aus linguex) erscheint der String der direkt auf [ folgt als Subscript.
\exi. Ich sehe das [obj Objekt].
%Mit lb/lbu lässt sich ein modifiziertes Beispiel mit ' markieren. Leider funktioniert die Subscriptfunktion jetzt nicht mehr. Schön wäre es, wenn sich beides kombinieren ließe.
\lb{eins}{Ich sehe das [obj Objekt]}
\lbi{eins}{Ich sehe das [obj Objekt]}
\lbu{zwei}{eins}{\('\)}{[subj Ich] sehe das Objekt}
\lbui{zwei}{eins}{\('\)}{[subj Ich] sehe das Objekt}
\end{document}
Das optionale Argument bleibt dabei jeweils auf der Strecke, weil sich eine \parbox schlicht nicht mit der Argumentverarbeitung von \ex/\exi verträgt. Wenn das kein Problem ist, könnte obiges weiterhelfen. Für weitere Anweisungen müsste man ggf. ähnlich verfahren.
BTW: Der Code von philex ist der schlimmste Spaghetti-Code, den ich in letzter Zeit gesehen habe. Der sieht aus, als hätte jemand die Wartung absichtlich erschwert, indem er nachträglich alle überflüssigen Leerzeichen und Zeilenumbrüche innerhalb von Makrodefinitionen entfernt hätte. 90% meiner Arbeit bestand darin, den erst einmal lesbar zu formatieren.